home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickDraw3D 1.6 SDK / Mac Interfaces / AIncludes / QD3DGeometry.a < prev    next >
Encoding:
Text File  |  1999-05-18  |  83.8 KB  |  2,899 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DGeometry.a
  3. ;
  4. ;    Contains:    Q3Geometry methods                                        
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.6
  7. ;                Release:    QuickTime 4.0
  8. ;
  9. ;    Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        For bug reports, consult the following page on
  12. ;                the World Wide Web:
  13. ;
  14. ;                    http://developer.apple.com/bugreporter/
  15. ;
  16. ;
  17.     IF &TYPE('__QD3DGEOMETRY__') = 'UNDEFINED' THEN
  18. __QD3DGEOMETRY__ SET 1
  19.  
  20.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  21.     include 'QD3D.a'
  22.     ENDIF
  23.  
  24.     IF &TYPE('__QD3DSET__') = 'UNDEFINED' THEN
  25.     include 'QD3DSet.a'
  26.     ENDIF
  27.  
  28. ; ******************************************************************************
  29. ; **                                                                             **
  30. ; **                                Geometry Routines                             **
  31. ; **                                                                             **
  32. ; ****************************************************************************
  33.  
  34. ;
  35. ; extern TQ3ObjectType Q3Geometry_GetType(TQ3GeometryObject geometry)
  36. ;
  37.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  38.         IMPORT_CFM_FUNCTION Q3Geometry_GetType
  39.     ENDIF
  40.  
  41. ;
  42. ; extern TQ3Status Q3Geometry_GetAttributeSet(TQ3GeometryObject geometry, TQ3AttributeSet *attributeSet)
  43. ;
  44.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  45.         IMPORT_CFM_FUNCTION Q3Geometry_GetAttributeSet
  46.     ENDIF
  47.  
  48. ;
  49. ; extern TQ3Status Q3Geometry_SetAttributeSet(TQ3GeometryObject geometry, TQ3AttributeSet attributeSet)
  50. ;
  51.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  52.         IMPORT_CFM_FUNCTION Q3Geometry_SetAttributeSet
  53.     ENDIF
  54.  
  55. ;
  56. ; extern TQ3Status Q3Geometry_Submit(TQ3GeometryObject geometry, TQ3ViewObject view)
  57. ;
  58.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  59.         IMPORT_CFM_FUNCTION Q3Geometry_Submit
  60.     ENDIF
  61.  
  62.  
  63.  
  64. ; ******************************************************************************
  65. ; **                                                                             **
  66. ; **                            Box    Data Structure Definitions                     **
  67. ; **                                                                             **
  68. ; ****************************************************************************
  69.  
  70. TQ3BoxData                RECORD 0
  71. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  72. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  73. majorAxis                 ds        TQ3Vector3D        ; offset: $18 (24)
  74. minorAxis                 ds        TQ3Vector3D        ; offset: $24 (36)
  75. faceAttributeSet         ds.l    1                ; offset: $30 (48)        ;  Ordering : Left, right,     
  76. ;               front, back,     
  77. ;               top, bottom    
  78. boxAttributeSet             ds.l    1                ; offset: $34 (52)
  79. sizeof                     EQU *                    ; size:   $38 (56)
  80.                         ENDR
  81. ; ******************************************************************************
  82. ; **                                                                             **
  83. ; **                                Box Routines                                 **
  84. ; **                                                                             **
  85. ; ****************************************************************************
  86.  
  87. ;
  88. ; extern TQ3GeometryObject Q3Box_New(const TQ3BoxData *boxData)
  89. ;
  90.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  91.         IMPORT_CFM_FUNCTION Q3Box_New
  92.     ENDIF
  93.  
  94. ;
  95. ; extern TQ3Status Q3Box_Submit(const TQ3BoxData *boxData, TQ3ViewObject view)
  96. ;
  97.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  98.         IMPORT_CFM_FUNCTION Q3Box_Submit
  99.     ENDIF
  100.  
  101. ;
  102. ; extern TQ3Status Q3Box_SetData(TQ3GeometryObject box, const TQ3BoxData *boxData)
  103. ;
  104.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  105.         IMPORT_CFM_FUNCTION Q3Box_SetData
  106.     ENDIF
  107.  
  108. ;
  109. ; extern TQ3Status Q3Box_GetData(TQ3GeometryObject box, TQ3BoxData *boxData)
  110. ;
  111.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  112.         IMPORT_CFM_FUNCTION Q3Box_GetData
  113.     ENDIF
  114.  
  115. ;
  116. ; extern TQ3Status Q3Box_EmptyData(TQ3BoxData *boxData)
  117. ;
  118.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  119.         IMPORT_CFM_FUNCTION Q3Box_EmptyData
  120.     ENDIF
  121.  
  122. ;
  123. ; extern TQ3Status Q3Box_SetOrigin(TQ3GeometryObject box, const TQ3Point3D *origin)
  124. ;
  125.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  126.         IMPORT_CFM_FUNCTION Q3Box_SetOrigin
  127.     ENDIF
  128.  
  129. ;
  130. ; extern TQ3Status Q3Box_SetOrientation(TQ3GeometryObject box, const TQ3Vector3D *orientation)
  131. ;
  132.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  133.         IMPORT_CFM_FUNCTION Q3Box_SetOrientation
  134.     ENDIF
  135.  
  136. ;
  137. ; extern TQ3Status Q3Box_SetMajorAxis(TQ3GeometryObject box, const TQ3Vector3D *majorAxis)
  138. ;
  139.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  140.         IMPORT_CFM_FUNCTION Q3Box_SetMajorAxis
  141.     ENDIF
  142.  
  143. ;
  144. ; extern TQ3Status Q3Box_SetMinorAxis(TQ3GeometryObject box, const TQ3Vector3D *minorAxis)
  145. ;
  146.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  147.         IMPORT_CFM_FUNCTION Q3Box_SetMinorAxis
  148.     ENDIF
  149.  
  150. ;
  151. ; extern TQ3Status Q3Box_GetOrigin(TQ3GeometryObject box, TQ3Point3D *origin)
  152. ;
  153.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  154.         IMPORT_CFM_FUNCTION Q3Box_GetOrigin
  155.     ENDIF
  156.  
  157. ;
  158. ; extern TQ3Status Q3Box_GetOrientation(TQ3GeometryObject box, TQ3Vector3D *orientation)
  159. ;
  160.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  161.         IMPORT_CFM_FUNCTION Q3Box_GetOrientation
  162.     ENDIF
  163.  
  164. ;
  165. ; extern TQ3Status Q3Box_GetMajorAxis(TQ3GeometryObject box, TQ3Vector3D *majorAxis)
  166. ;
  167.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  168.         IMPORT_CFM_FUNCTION Q3Box_GetMajorAxis
  169.     ENDIF
  170.  
  171. ;
  172. ; extern TQ3Status Q3Box_GetMinorAxis(TQ3GeometryObject box, TQ3Vector3D *minorAxis)
  173. ;
  174.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  175.         IMPORT_CFM_FUNCTION Q3Box_GetMinorAxis
  176.     ENDIF
  177.  
  178. ;
  179. ; extern TQ3Status Q3Box_GetFaceAttributeSet(TQ3GeometryObject box, unsigned long faceIndex, TQ3AttributeSet *faceAttributeSet)
  180. ;
  181.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  182.         IMPORT_CFM_FUNCTION Q3Box_GetFaceAttributeSet
  183.     ENDIF
  184.  
  185. ;
  186. ; extern TQ3Status Q3Box_SetFaceAttributeSet(TQ3GeometryObject box, unsigned long faceIndex, TQ3AttributeSet faceAttributeSet)
  187. ;
  188.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  189.         IMPORT_CFM_FUNCTION Q3Box_SetFaceAttributeSet
  190.     ENDIF
  191.  
  192.  
  193.  
  194. ; ******************************************************************************
  195. ; **                                                                             **
  196. ; **                        Cone Data Structure Definitions                          **
  197. ; **                                                                             **
  198. ; ****************************************************************************
  199.  
  200. TQ3ConeData                RECORD 0
  201. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  202. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  203. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  204. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  205. uMin                     ds        Float32            ; offset: $30 (48)
  206. uMax                     ds        Float32            ; offset: $34 (52)
  207. vMin                     ds        Float32            ; offset: $38 (56)
  208. vMax                     ds        Float32            ; offset: $3C (60)
  209. caps                     ds.l    1                ; offset: $40 (64)
  210. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  211. faceAttributeSet         ds.l    1                ; offset: $48 (72)
  212. bottomAttributeSet         ds.l    1                ; offset: $4C (76)
  213. coneAttributeSet         ds.l    1                ; offset: $50 (80)
  214. sizeof                     EQU *                    ; size:   $54 (84)
  215.                         ENDR
  216. ; ******************************************************************************
  217. ; **                                                                             **
  218. ; **                                Cone Routines                                 **
  219. ; **                                                                             **
  220. ; ****************************************************************************
  221.  
  222. ;
  223. ; extern TQ3GeometryObject Q3Cone_New(const TQ3ConeData *coneData)
  224. ;
  225.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  226.         IMPORT_CFM_FUNCTION Q3Cone_New
  227.     ENDIF
  228.  
  229. ;
  230. ; extern TQ3Status Q3Cone_Submit(const TQ3ConeData *coneData, TQ3ViewObject view)
  231. ;
  232.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  233.         IMPORT_CFM_FUNCTION Q3Cone_Submit
  234.     ENDIF
  235.  
  236. ;
  237. ; extern TQ3Status Q3Cone_SetData(TQ3GeometryObject cone, const TQ3ConeData *coneData)
  238. ;
  239.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  240.         IMPORT_CFM_FUNCTION Q3Cone_SetData
  241.     ENDIF
  242.  
  243. ;
  244. ; extern TQ3Status Q3Cone_GetData(TQ3GeometryObject cone, TQ3ConeData *coneData)
  245. ;
  246.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  247.         IMPORT_CFM_FUNCTION Q3Cone_GetData
  248.     ENDIF
  249.  
  250. ;
  251. ; extern TQ3Status Q3Cone_SetOrigin(TQ3GeometryObject cone, const TQ3Point3D *origin)
  252. ;
  253.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  254.         IMPORT_CFM_FUNCTION Q3Cone_SetOrigin
  255.     ENDIF
  256.  
  257. ;
  258. ; extern TQ3Status Q3Cone_SetOrientation(TQ3GeometryObject cone, const TQ3Vector3D *orientation)
  259. ;
  260.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  261.         IMPORT_CFM_FUNCTION Q3Cone_SetOrientation
  262.     ENDIF
  263.  
  264. ;
  265. ; extern TQ3Status Q3Cone_SetMajorRadius(TQ3GeometryObject cone, const TQ3Vector3D *majorRadius)
  266. ;
  267.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  268.         IMPORT_CFM_FUNCTION Q3Cone_SetMajorRadius
  269.     ENDIF
  270.  
  271. ;
  272. ; extern TQ3Status Q3Cone_SetMinorRadius(TQ3GeometryObject cone, const TQ3Vector3D *minorRadius)
  273. ;
  274.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  275.         IMPORT_CFM_FUNCTION Q3Cone_SetMinorRadius
  276.     ENDIF
  277.  
  278. ;
  279. ; extern TQ3Status Q3Cone_GetOrigin(TQ3GeometryObject cone, TQ3Point3D *origin)
  280. ;
  281.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  282.         IMPORT_CFM_FUNCTION Q3Cone_GetOrigin
  283.     ENDIF
  284.  
  285. ;
  286. ; extern TQ3Status Q3Cone_GetOrientation(TQ3GeometryObject cone, TQ3Vector3D *orientation)
  287. ;
  288.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  289.         IMPORT_CFM_FUNCTION Q3Cone_GetOrientation
  290.     ENDIF
  291.  
  292. ;
  293. ; extern TQ3Status Q3Cone_GetMajorRadius(TQ3GeometryObject cone, TQ3Vector3D *majorRadius)
  294. ;
  295.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  296.         IMPORT_CFM_FUNCTION Q3Cone_GetMajorRadius
  297.     ENDIF
  298.  
  299. ;
  300. ; extern TQ3Status Q3Cone_GetMinorRadius(TQ3GeometryObject cone, TQ3Vector3D *minorRadius)
  301. ;
  302.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  303.         IMPORT_CFM_FUNCTION Q3Cone_GetMinorRadius
  304.     ENDIF
  305.  
  306. ;
  307. ; extern TQ3Status Q3Cone_SetCaps(TQ3GeometryObject cone, TQ3EndCap caps)
  308. ;
  309.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  310.         IMPORT_CFM_FUNCTION Q3Cone_SetCaps
  311.     ENDIF
  312.  
  313. ;
  314. ; extern TQ3Status Q3Cone_GetCaps(TQ3GeometryObject cone, TQ3EndCap *caps)
  315. ;
  316.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  317.         IMPORT_CFM_FUNCTION Q3Cone_GetCaps
  318.     ENDIF
  319.  
  320. ;
  321. ; extern TQ3Status Q3Cone_SetBottomAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet bottomAttributeSet)
  322. ;
  323.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  324.         IMPORT_CFM_FUNCTION Q3Cone_SetBottomAttributeSet
  325.     ENDIF
  326.  
  327. ;
  328. ; extern TQ3Status Q3Cone_GetBottomAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet *bottomAttributeSet)
  329. ;
  330.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  331.         IMPORT_CFM_FUNCTION Q3Cone_GetBottomAttributeSet
  332.     ENDIF
  333.  
  334. ;
  335. ; extern TQ3Status Q3Cone_SetFaceAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet faceAttributeSet)
  336. ;
  337.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  338.         IMPORT_CFM_FUNCTION Q3Cone_SetFaceAttributeSet
  339.     ENDIF
  340.  
  341. ;
  342. ; extern TQ3Status Q3Cone_GetFaceAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet *faceAttributeSet)
  343. ;
  344.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  345.         IMPORT_CFM_FUNCTION Q3Cone_GetFaceAttributeSet
  346.     ENDIF
  347.  
  348. ;
  349. ; extern TQ3Status Q3Cone_EmptyData(TQ3ConeData *coneData)
  350. ;
  351.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  352.         IMPORT_CFM_FUNCTION Q3Cone_EmptyData
  353.     ENDIF
  354.  
  355.  
  356.  
  357.  
  358. ; ******************************************************************************
  359. ; **                                                                             **
  360. ; **                        Cylinder Data Structure Definitions                     **
  361. ; **                                                                             **
  362. ; ****************************************************************************
  363.  
  364. TQ3CylinderData            RECORD 0
  365. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  366. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  367. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  368. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  369. uMin                     ds        Float32            ; offset: $30 (48)
  370. uMax                     ds        Float32            ; offset: $34 (52)
  371. vMin                     ds        Float32            ; offset: $38 (56)
  372. vMax                     ds        Float32            ; offset: $3C (60)
  373. caps                     ds.l    1                ; offset: $40 (64)
  374. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  375. topAttributeSet             ds.l    1                ; offset: $48 (72)
  376. faceAttributeSet         ds.l    1                ; offset: $4C (76)
  377. bottomAttributeSet         ds.l    1                ; offset: $50 (80)
  378. cylinderAttributeSet     ds.l    1                ; offset: $54 (84)
  379. sizeof                     EQU *                    ; size:   $58 (88)
  380.                         ENDR
  381. ; ******************************************************************************
  382. ; **                                                                             **
  383. ; **                            Cylinder Routines                                 **
  384. ; **                                                                             **
  385. ; ****************************************************************************
  386.  
  387. ;
  388. ; extern TQ3GeometryObject Q3Cylinder_New(const TQ3CylinderData *cylinderData)
  389. ;
  390.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  391.         IMPORT_CFM_FUNCTION Q3Cylinder_New
  392.     ENDIF
  393.  
  394. ;
  395. ; extern TQ3Status Q3Cylinder_Submit(const TQ3CylinderData *cylinderData, TQ3ViewObject view)
  396. ;
  397.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  398.         IMPORT_CFM_FUNCTION Q3Cylinder_Submit
  399.     ENDIF
  400.  
  401. ;
  402. ; extern TQ3Status Q3Cylinder_SetData(TQ3GeometryObject cylinder, const TQ3CylinderData *cylinderData)
  403. ;
  404.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  405.         IMPORT_CFM_FUNCTION Q3Cylinder_SetData
  406.     ENDIF
  407.  
  408. ;
  409. ; extern TQ3Status Q3Cylinder_GetData(TQ3GeometryObject cylinder, TQ3CylinderData *cylinderData)
  410. ;
  411.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  412.         IMPORT_CFM_FUNCTION Q3Cylinder_GetData
  413.     ENDIF
  414.  
  415. ;
  416. ; extern TQ3Status Q3Cylinder_SetOrigin(TQ3GeometryObject cylinder, const TQ3Point3D *origin)
  417. ;
  418.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  419.         IMPORT_CFM_FUNCTION Q3Cylinder_SetOrigin
  420.     ENDIF
  421.  
  422. ;
  423. ; extern TQ3Status Q3Cylinder_SetOrientation(TQ3GeometryObject cylinder, const TQ3Vector3D *orientation)
  424. ;
  425.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  426.         IMPORT_CFM_FUNCTION Q3Cylinder_SetOrientation
  427.     ENDIF
  428.  
  429. ;
  430. ; extern TQ3Status Q3Cylinder_SetMajorRadius(TQ3GeometryObject cylinder, const TQ3Vector3D *majorRadius)
  431. ;
  432.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  433.         IMPORT_CFM_FUNCTION Q3Cylinder_SetMajorRadius
  434.     ENDIF
  435.  
  436. ;
  437. ; extern TQ3Status Q3Cylinder_SetMinorRadius(TQ3GeometryObject cylinder, const TQ3Vector3D *minorRadius)
  438. ;
  439.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  440.         IMPORT_CFM_FUNCTION Q3Cylinder_SetMinorRadius
  441.     ENDIF
  442.  
  443. ;
  444. ; extern TQ3Status Q3Cylinder_GetOrigin(TQ3GeometryObject cylinder, TQ3Point3D *origin)
  445. ;
  446.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  447.         IMPORT_CFM_FUNCTION Q3Cylinder_GetOrigin
  448.     ENDIF
  449.  
  450. ;
  451. ; extern TQ3Status Q3Cylinder_GetOrientation(TQ3GeometryObject cylinder, TQ3Vector3D *orientation)
  452. ;
  453.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  454.         IMPORT_CFM_FUNCTION Q3Cylinder_GetOrientation
  455.     ENDIF
  456.  
  457. ;
  458. ; extern TQ3Status Q3Cylinder_GetMajorRadius(TQ3GeometryObject cylinder, TQ3Vector3D *majorRadius)
  459. ;
  460.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  461.         IMPORT_CFM_FUNCTION Q3Cylinder_GetMajorRadius
  462.     ENDIF
  463.  
  464. ;
  465. ; extern TQ3Status Q3Cylinder_GetMinorRadius(TQ3GeometryObject cylinder, TQ3Vector3D *minorRadius)
  466. ;
  467.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  468.         IMPORT_CFM_FUNCTION Q3Cylinder_GetMinorRadius
  469.     ENDIF
  470.  
  471.  
  472. ;
  473. ; extern TQ3Status Q3Cylinder_SetCaps(TQ3GeometryObject cylinder, TQ3EndCap caps)
  474. ;
  475.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  476.         IMPORT_CFM_FUNCTION Q3Cylinder_SetCaps
  477.     ENDIF
  478.  
  479. ;
  480. ; extern TQ3Status Q3Cylinder_GetCaps(TQ3GeometryObject cylinder, TQ3EndCap *caps)
  481. ;
  482.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  483.         IMPORT_CFM_FUNCTION Q3Cylinder_GetCaps
  484.     ENDIF
  485.  
  486.  
  487. ;
  488. ; extern TQ3Status Q3Cylinder_SetTopAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet topAttributeSet)
  489. ;
  490.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  491.         IMPORT_CFM_FUNCTION Q3Cylinder_SetTopAttributeSet
  492.     ENDIF
  493.  
  494. ;
  495. ; extern TQ3Status Q3Cylinder_GetTopAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *topAttributeSet)
  496. ;
  497.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  498.         IMPORT_CFM_FUNCTION Q3Cylinder_GetTopAttributeSet
  499.     ENDIF
  500.  
  501. ;
  502. ; extern TQ3Status Q3Cylinder_SetBottomAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet bottomAttributeSet)
  503. ;
  504.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  505.         IMPORT_CFM_FUNCTION Q3Cylinder_SetBottomAttributeSet
  506.     ENDIF
  507.  
  508. ;
  509. ; extern TQ3Status Q3Cylinder_GetBottomAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *bottomAttributeSet)
  510. ;
  511.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  512.         IMPORT_CFM_FUNCTION Q3Cylinder_GetBottomAttributeSet
  513.     ENDIF
  514.  
  515. ;
  516. ; extern TQ3Status Q3Cylinder_SetFaceAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet faceAttributeSet)
  517. ;
  518.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  519.         IMPORT_CFM_FUNCTION Q3Cylinder_SetFaceAttributeSet
  520.     ENDIF
  521.  
  522. ;
  523. ; extern TQ3Status Q3Cylinder_GetFaceAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *faceAttributeSet)
  524. ;
  525.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  526.         IMPORT_CFM_FUNCTION Q3Cylinder_GetFaceAttributeSet
  527.     ENDIF
  528.  
  529. ;
  530. ; extern TQ3Status Q3Cylinder_EmptyData(TQ3CylinderData *cylinderData)
  531. ;
  532.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  533.         IMPORT_CFM_FUNCTION Q3Cylinder_EmptyData
  534.     ENDIF
  535.  
  536.  
  537.  
  538.  
  539. ; ******************************************************************************
  540. ; **                                                                             **
  541. ; **                        Disk Data Structure Definitions                         **
  542. ; **                                                                             **
  543. ; ****************************************************************************
  544.  
  545. TQ3DiskData                RECORD 0
  546. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  547. majorRadius                 ds        TQ3Vector3D        ; offset: $C (12)
  548. minorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  549. uMin                     ds        Float32            ; offset: $24 (36)
  550. uMax                     ds        Float32            ; offset: $28 (40)
  551. vMin                     ds        Float32            ; offset: $2C (44)
  552. vMax                     ds        Float32            ; offset: $30 (48)
  553. diskAttributeSet         ds.l    1                ; offset: $34 (52)
  554. sizeof                     EQU *                    ; size:   $38 (56)
  555.                         ENDR
  556. ; ******************************************************************************
  557. ; **                                                                             **
  558. ; **                                Disk Routines                                  **
  559. ; **                                                                             **
  560. ; ****************************************************************************
  561.  
  562. ;
  563. ; extern TQ3GeometryObject Q3Disk_New(const TQ3DiskData *diskData)
  564. ;
  565.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  566.         IMPORT_CFM_FUNCTION Q3Disk_New
  567.     ENDIF
  568.  
  569. ;
  570. ; extern TQ3Status Q3Disk_Submit(const TQ3DiskData *diskData, TQ3ViewObject view)
  571. ;
  572.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  573.         IMPORT_CFM_FUNCTION Q3Disk_Submit
  574.     ENDIF
  575.  
  576. ;
  577. ; extern TQ3Status Q3Disk_SetData(TQ3GeometryObject disk, const TQ3DiskData *diskData)
  578. ;
  579.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  580.         IMPORT_CFM_FUNCTION Q3Disk_SetData
  581.     ENDIF
  582.  
  583. ;
  584. ; extern TQ3Status Q3Disk_GetData(TQ3GeometryObject disk, TQ3DiskData *diskData)
  585. ;
  586.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  587.         IMPORT_CFM_FUNCTION Q3Disk_GetData
  588.     ENDIF
  589.  
  590. ;
  591. ; extern TQ3Status Q3Disk_SetOrigin(TQ3GeometryObject disk, const TQ3Point3D *origin)
  592. ;
  593.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  594.         IMPORT_CFM_FUNCTION Q3Disk_SetOrigin
  595.     ENDIF
  596.  
  597. ;
  598. ; extern TQ3Status Q3Disk_SetMajorRadius(TQ3GeometryObject disk, const TQ3Vector3D *majorRadius)
  599. ;
  600.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  601.         IMPORT_CFM_FUNCTION Q3Disk_SetMajorRadius
  602.     ENDIF
  603.  
  604. ;
  605. ; extern TQ3Status Q3Disk_SetMinorRadius(TQ3GeometryObject disk, const TQ3Vector3D *minorRadius)
  606. ;
  607.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  608.         IMPORT_CFM_FUNCTION Q3Disk_SetMinorRadius
  609.     ENDIF
  610.  
  611. ;
  612. ; extern TQ3Status Q3Disk_GetOrigin(TQ3GeometryObject disk, TQ3Point3D *origin)
  613. ;
  614.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  615.         IMPORT_CFM_FUNCTION Q3Disk_GetOrigin
  616.     ENDIF
  617.  
  618. ;
  619. ; extern TQ3Status Q3Disk_GetMajorRadius(TQ3GeometryObject disk, TQ3Vector3D *majorRadius)
  620. ;
  621.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  622.         IMPORT_CFM_FUNCTION Q3Disk_GetMajorRadius
  623.     ENDIF
  624.  
  625. ;
  626. ; extern TQ3Status Q3Disk_GetMinorRadius(TQ3GeometryObject disk, TQ3Vector3D *minorRadius)
  627. ;
  628.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  629.         IMPORT_CFM_FUNCTION Q3Disk_GetMinorRadius
  630.     ENDIF
  631.  
  632.  
  633. ;
  634. ; extern TQ3Status Q3Disk_EmptyData(TQ3DiskData *diskData)
  635. ;
  636.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  637.         IMPORT_CFM_FUNCTION Q3Disk_EmptyData
  638.     ENDIF
  639.  
  640.  
  641.  
  642.  
  643. ; ******************************************************************************
  644. ; **                                                                             **
  645. ; **                     Ellipse Data Structure Definitions                         **
  646. ; **                                                                             **
  647. ; ****************************************************************************
  648.  
  649. TQ3EllipseData            RECORD 0
  650. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  651. majorRadius                 ds        TQ3Vector3D        ; offset: $C (12)
  652. minorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  653. uMin                     ds        Float32            ; offset: $24 (36)
  654. uMax                     ds        Float32            ; offset: $28 (40)
  655. ellipseAttributeSet         ds.l    1                ; offset: $2C (44)
  656. sizeof                     EQU *                    ; size:   $30 (48)
  657.                         ENDR
  658. ; ******************************************************************************
  659. ; **                                                                             **
  660. ; **                                Ellipse Routines                             **
  661. ; **                                                                             **
  662. ; ****************************************************************************
  663.  
  664. ;
  665. ; extern TQ3GeometryObject Q3Ellipse_New(const TQ3EllipseData *ellipseData)
  666. ;
  667.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  668.         IMPORT_CFM_FUNCTION Q3Ellipse_New
  669.     ENDIF
  670.  
  671. ;
  672. ; extern TQ3Status Q3Ellipse_Submit(const TQ3EllipseData *ellipseData, TQ3ViewObject view)
  673. ;
  674.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  675.         IMPORT_CFM_FUNCTION Q3Ellipse_Submit
  676.     ENDIF
  677.  
  678. ;
  679. ; extern TQ3Status Q3Ellipse_SetData(TQ3GeometryObject ellipse, const TQ3EllipseData *ellipseData)
  680. ;
  681.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  682.         IMPORT_CFM_FUNCTION Q3Ellipse_SetData
  683.     ENDIF
  684.  
  685. ;
  686. ; extern TQ3Status Q3Ellipse_GetData(TQ3GeometryObject ellipse, TQ3EllipseData *ellipseData)
  687. ;
  688.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  689.         IMPORT_CFM_FUNCTION Q3Ellipse_GetData
  690.     ENDIF
  691.  
  692. ;
  693. ; extern TQ3Status Q3Ellipse_SetOrigin(TQ3GeometryObject ellipse, const TQ3Point3D *origin)
  694. ;
  695.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  696.         IMPORT_CFM_FUNCTION Q3Ellipse_SetOrigin
  697.     ENDIF
  698.  
  699. ;
  700. ; extern TQ3Status Q3Ellipse_SetMajorRadius(TQ3GeometryObject ellipse, const TQ3Vector3D *majorRadius)
  701. ;
  702.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  703.         IMPORT_CFM_FUNCTION Q3Ellipse_SetMajorRadius
  704.     ENDIF
  705.  
  706. ;
  707. ; extern TQ3Status Q3Ellipse_SetMinorRadius(TQ3GeometryObject ellipse, const TQ3Vector3D *minorRadius)
  708. ;
  709.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  710.         IMPORT_CFM_FUNCTION Q3Ellipse_SetMinorRadius
  711.     ENDIF
  712.  
  713. ;
  714. ; extern TQ3Status Q3Ellipse_GetOrigin(TQ3GeometryObject ellipse, TQ3Point3D *origin)
  715. ;
  716.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  717.         IMPORT_CFM_FUNCTION Q3Ellipse_GetOrigin
  718.     ENDIF
  719.  
  720. ;
  721. ; extern TQ3Status Q3Ellipse_GetMajorRadius(TQ3GeometryObject ellipse, TQ3Vector3D *majorRadius)
  722. ;
  723.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  724.         IMPORT_CFM_FUNCTION Q3Ellipse_GetMajorRadius
  725.     ENDIF
  726.  
  727. ;
  728. ; extern TQ3Status Q3Ellipse_GetMinorRadius(TQ3GeometryObject ellipse, TQ3Vector3D *minorRadius)
  729. ;
  730.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  731.         IMPORT_CFM_FUNCTION Q3Ellipse_GetMinorRadius
  732.     ENDIF
  733.  
  734.  
  735. ;
  736. ; extern TQ3Status Q3Ellipse_EmptyData(TQ3EllipseData *ellipseData)
  737. ;
  738.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  739.         IMPORT_CFM_FUNCTION Q3Ellipse_EmptyData
  740.     ENDIF
  741.  
  742.  
  743.  
  744.  
  745. ; ******************************************************************************
  746. ; **                                                                          **
  747. ; **                            Ellipsoid Data structures                         **
  748. ; **                                                                          **
  749. ; ****************************************************************************
  750.  
  751. TQ3EllipsoidData        RECORD 0
  752. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  753. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  754. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  755. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  756. uMin                     ds        Float32            ; offset: $30 (48)
  757. uMax                     ds        Float32            ; offset: $34 (52)
  758. vMin                     ds        Float32            ; offset: $38 (56)
  759. vMax                     ds        Float32            ; offset: $3C (60)
  760. caps                     ds.l    1                ; offset: $40 (64)
  761. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  762. ellipsoidAttributeSet     ds.l    1                ; offset: $48 (72)
  763. sizeof                     EQU *                    ; size:   $4C (76)
  764.                         ENDR
  765. ; ******************************************************************************
  766. ; **                                                                          **
  767. ; **                            Ellipsoid Routines                                **
  768. ; **                                                                          **
  769. ; ****************************************************************************
  770.  
  771. ;
  772. ; extern TQ3GeometryObject Q3Ellipsoid_New(const TQ3EllipsoidData *ellipsoidData)
  773. ;
  774.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  775.         IMPORT_CFM_FUNCTION Q3Ellipsoid_New
  776.     ENDIF
  777.  
  778. ;
  779. ; extern TQ3Status Q3Ellipsoid_Submit(const TQ3EllipsoidData *ellipsoidData, TQ3ViewObject view)
  780. ;
  781.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  782.         IMPORT_CFM_FUNCTION Q3Ellipsoid_Submit
  783.     ENDIF
  784.  
  785. ;
  786. ; extern TQ3Status Q3Ellipsoid_SetData(TQ3GeometryObject ellipsoid, const TQ3EllipsoidData *ellipsoidData)
  787. ;
  788.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  789.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetData
  790.     ENDIF
  791.  
  792. ;
  793. ; extern TQ3Status Q3Ellipsoid_GetData(TQ3GeometryObject ellipsoid, TQ3EllipsoidData *ellipsoidData)
  794. ;
  795.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  796.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetData
  797.     ENDIF
  798.  
  799. ;
  800. ; extern TQ3Status Q3Ellipsoid_SetOrigin(TQ3GeometryObject ellipsoid, const TQ3Point3D *origin)
  801. ;
  802.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  803.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetOrigin
  804.     ENDIF
  805.  
  806. ;
  807. ; extern TQ3Status Q3Ellipsoid_SetOrientation(TQ3GeometryObject ellipsoid, const TQ3Vector3D *orientation)
  808. ;
  809.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  810.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetOrientation
  811.     ENDIF
  812.  
  813. ;
  814. ; extern TQ3Status Q3Ellipsoid_SetMajorRadius(TQ3GeometryObject ellipsoid, const TQ3Vector3D *majorRadius)
  815. ;
  816.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  817.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetMajorRadius
  818.     ENDIF
  819.  
  820. ;
  821. ; extern TQ3Status Q3Ellipsoid_SetMinorRadius(TQ3GeometryObject ellipsoid, const TQ3Vector3D *minorRadius)
  822. ;
  823.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  824.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetMinorRadius
  825.     ENDIF
  826.  
  827. ;
  828. ; extern TQ3Status Q3Ellipsoid_GetOrigin(TQ3GeometryObject ellipsoid, TQ3Point3D *origin)
  829. ;
  830.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  831.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetOrigin
  832.     ENDIF
  833.  
  834. ;
  835. ; extern TQ3Status Q3Ellipsoid_GetOrientation(TQ3GeometryObject ellipsoid, TQ3Vector3D *orientation)
  836. ;
  837.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  838.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetOrientation
  839.     ENDIF
  840.  
  841. ;
  842. ; extern TQ3Status Q3Ellipsoid_GetMajorRadius(TQ3GeometryObject ellipsoid, TQ3Vector3D *majorRadius)
  843. ;
  844.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  845.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetMajorRadius
  846.     ENDIF
  847.  
  848. ;
  849. ; extern TQ3Status Q3Ellipsoid_GetMinorRadius(TQ3GeometryObject ellipsoid, TQ3Vector3D *minorRadius)
  850. ;
  851.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  852.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetMinorRadius
  853.     ENDIF
  854.  
  855. ;
  856. ; extern TQ3Status Q3Ellipsoid_EmptyData(TQ3EllipsoidData *ellipsoidData)
  857. ;
  858.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  859.         IMPORT_CFM_FUNCTION Q3Ellipsoid_EmptyData
  860.     ENDIF
  861.  
  862.  
  863.  
  864.  
  865. ; ******************************************************************************
  866. ; **                                                                             **
  867. ; **                    General Polygon Data Structure Definitions                 **
  868. ; **                                                                             **
  869. ; ****************************************************************************
  870.  
  871.  
  872. ; typedef long                            TQ3GeneralPolygonShapeHint
  873. kQ3GeneralPolygonShapeHintComplex EQU    0
  874. kQ3GeneralPolygonShapeHintConcave EQU    1
  875. kQ3GeneralPolygonShapeHintConvex EQU    2
  876. TQ3GeneralPolygonContourData RECORD 0
  877. numVertices                 ds.l    1                ; offset: $0 (0)
  878. vertices                 ds.l    1                ; offset: $4 (4)
  879. sizeof                     EQU *                    ; size:   $8 (8)
  880.                         ENDR
  881. TQ3GeneralPolygonData    RECORD 0
  882. numContours                 ds.l    1                ; offset: $0 (0)
  883. contours                 ds.l    1                ; offset: $4 (4)
  884. shapeHint                 ds.l    1                ; offset: $8 (8)
  885. generalPolygonAttributeSet  ds.l 1                ; offset: $C (12)
  886. sizeof                     EQU *                    ; size:   $10 (16)
  887.                         ENDR
  888. ; ******************************************************************************
  889. ; **                                                                             **
  890. ; **                            General polygon Routines                         **
  891. ; **                                                                             **
  892. ; ****************************************************************************
  893.  
  894. ;
  895. ; extern TQ3GeometryObject Q3GeneralPolygon_New(const TQ3GeneralPolygonData *generalPolygonData)
  896. ;
  897.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  898.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_New
  899.     ENDIF
  900.  
  901. ;
  902. ; extern TQ3Status Q3GeneralPolygon_Submit(const TQ3GeneralPolygonData *generalPolygonData, TQ3ViewObject view)
  903. ;
  904.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  905.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_Submit
  906.     ENDIF
  907.  
  908. ;
  909. ; extern TQ3Status Q3GeneralPolygon_SetData(TQ3GeometryObject generalPolygon, const TQ3GeneralPolygonData *generalPolygonData)
  910. ;
  911.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  912.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetData
  913.     ENDIF
  914.  
  915. ;
  916. ; extern TQ3Status Q3GeneralPolygon_GetData(TQ3GeometryObject polygon, TQ3GeneralPolygonData *generalPolygonData)
  917. ;
  918.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  919.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetData
  920.     ENDIF
  921.  
  922. ;
  923. ; extern TQ3Status Q3GeneralPolygon_EmptyData(TQ3GeneralPolygonData *generalPolygonData)
  924. ;
  925.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  926.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_EmptyData
  927.     ENDIF
  928.  
  929. ;
  930. ; extern TQ3Status Q3GeneralPolygon_GetVertexPosition(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3Point3D *position)
  931. ;
  932.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  933.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetVertexPosition
  934.     ENDIF
  935.  
  936. ;
  937. ; extern TQ3Status Q3GeneralPolygon_SetVertexPosition(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, const TQ3Point3D *position)
  938. ;
  939.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  940.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetVertexPosition
  941.     ENDIF
  942.  
  943. ;
  944. ; extern TQ3Status Q3GeneralPolygon_GetVertexAttributeSet(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3AttributeSet *attributeSet)
  945. ;
  946.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  947.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetVertexAttributeSet
  948.     ENDIF
  949.  
  950. ;
  951. ; extern TQ3Status Q3GeneralPolygon_SetVertexAttributeSet(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3AttributeSet attributeSet)
  952. ;
  953.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  954.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetVertexAttributeSet
  955.     ENDIF
  956.  
  957. ;
  958. ; extern TQ3Status Q3GeneralPolygon_SetShapeHint(TQ3GeometryObject generalPolygon, TQ3GeneralPolygonShapeHint shapeHint)
  959. ;
  960.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  961.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetShapeHint
  962.     ENDIF
  963.  
  964. ;
  965. ; extern TQ3Status Q3GeneralPolygon_GetShapeHint(TQ3GeometryObject generalPolygon, TQ3GeneralPolygonShapeHint *shapeHint)
  966. ;
  967.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  968.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetShapeHint
  969.     ENDIF
  970.  
  971.  
  972.  
  973.  
  974. ; ******************************************************************************
  975. ; **                                                                             **
  976. ; **                        Line Data Structure Definitions                         **
  977. ; **                                                                             **
  978. ; ****************************************************************************
  979.  
  980. TQ3LineData                RECORD 0
  981. vertices                 ds.b    2 * TQ3Vertex3D.sizeof ; offset: $0 (0)
  982. lineAttributeSet         ds.l    1                ; offset: $20 (32)
  983. sizeof                     EQU *                    ; size:   $24 (36)
  984.                         ENDR
  985. ; ******************************************************************************
  986. ; **                                                                             **
  987. ; **                            Line Routines                                     **
  988. ; **                                                                             **
  989. ; ****************************************************************************
  990.  
  991. ;
  992. ; extern TQ3GeometryObject Q3Line_New(const TQ3LineData *lineData)
  993. ;
  994.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  995.         IMPORT_CFM_FUNCTION Q3Line_New
  996.     ENDIF
  997.  
  998. ;
  999. ; extern TQ3Status Q3Line_Submit(const TQ3LineData *lineData, TQ3ViewObject view)
  1000. ;
  1001.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1002.         IMPORT_CFM_FUNCTION Q3Line_Submit
  1003.     ENDIF
  1004.  
  1005. ;
  1006. ; extern TQ3Status Q3Line_GetData(TQ3GeometryObject line, TQ3LineData *lineData)
  1007. ;
  1008.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1009.         IMPORT_CFM_FUNCTION Q3Line_GetData
  1010.     ENDIF
  1011.  
  1012. ;
  1013. ; extern TQ3Status Q3Line_SetData(TQ3GeometryObject line, const TQ3LineData *lineData)
  1014. ;
  1015.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1016.         IMPORT_CFM_FUNCTION Q3Line_SetData
  1017.     ENDIF
  1018.  
  1019. ;
  1020. ; extern TQ3Status Q3Line_GetVertexPosition(TQ3GeometryObject line, unsigned long index, TQ3Point3D *position)
  1021. ;
  1022.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1023.         IMPORT_CFM_FUNCTION Q3Line_GetVertexPosition
  1024.     ENDIF
  1025.  
  1026. ;
  1027. ; extern TQ3Status Q3Line_SetVertexPosition(TQ3GeometryObject line, unsigned long index, const TQ3Point3D *position)
  1028. ;
  1029.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1030.         IMPORT_CFM_FUNCTION Q3Line_SetVertexPosition
  1031.     ENDIF
  1032.  
  1033. ;
  1034. ; extern TQ3Status Q3Line_GetVertexAttributeSet(TQ3GeometryObject line, unsigned long index, TQ3AttributeSet *attributeSet)
  1035. ;
  1036.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1037.         IMPORT_CFM_FUNCTION Q3Line_GetVertexAttributeSet
  1038.     ENDIF
  1039.  
  1040. ;
  1041. ; extern TQ3Status Q3Line_SetVertexAttributeSet(TQ3GeometryObject line, unsigned long index, TQ3AttributeSet attributeSet)
  1042. ;
  1043.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1044.         IMPORT_CFM_FUNCTION Q3Line_SetVertexAttributeSet
  1045.     ENDIF
  1046.  
  1047. ;
  1048. ; extern TQ3Status Q3Line_EmptyData(TQ3LineData *lineData)
  1049. ;
  1050.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1051.         IMPORT_CFM_FUNCTION Q3Line_EmptyData
  1052.     ENDIF
  1053.  
  1054.  
  1055.  
  1056.  
  1057. ; ******************************************************************************
  1058. ; **                                                                             **
  1059. ; **                        Marker Data Structure Definitions                     **
  1060. ; **                                                                             **
  1061. ; ****************************************************************************
  1062.  
  1063. TQ3MarkerData            RECORD 0
  1064. location                 ds        TQ3Point3D        ; offset: $0 (0)
  1065. xOffset                     ds.l    1                ; offset: $C (12)
  1066. yOffset                     ds.l    1                ; offset: $10 (16)
  1067. bitmap                     ds        TQ3Bitmap        ; offset: $14 (20)
  1068. markerAttributeSet         ds.l    1                ; offset: $28 (40)
  1069. sizeof                     EQU *                    ; size:   $2C (44)
  1070.                         ENDR
  1071. ; ******************************************************************************
  1072. ; **                                                                             **
  1073. ; **                                Marker Routines                                 **
  1074. ; **                                                                             **
  1075. ; ****************************************************************************
  1076.  
  1077. ;
  1078. ; extern TQ3GeometryObject Q3Marker_New(const TQ3MarkerData *markerData)
  1079. ;
  1080.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1081.         IMPORT_CFM_FUNCTION Q3Marker_New
  1082.     ENDIF
  1083.  
  1084. ;
  1085. ; extern TQ3Status Q3Marker_Submit(const TQ3MarkerData *markerData, TQ3ViewObject view)
  1086. ;
  1087.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1088.         IMPORT_CFM_FUNCTION Q3Marker_Submit
  1089.     ENDIF
  1090.  
  1091. ;
  1092. ; extern TQ3Status Q3Marker_SetData(TQ3GeometryObject geometry, const TQ3MarkerData *markerData)
  1093. ;
  1094.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1095.         IMPORT_CFM_FUNCTION Q3Marker_SetData
  1096.     ENDIF
  1097.  
  1098. ;
  1099. ; extern TQ3Status Q3Marker_GetData(TQ3GeometryObject geometry, TQ3MarkerData *markerData)
  1100. ;
  1101.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1102.         IMPORT_CFM_FUNCTION Q3Marker_GetData
  1103.     ENDIF
  1104.  
  1105. ;
  1106. ; extern TQ3Status Q3Marker_EmptyData(TQ3MarkerData *markerData)
  1107. ;
  1108.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1109.         IMPORT_CFM_FUNCTION Q3Marker_EmptyData
  1110.     ENDIF
  1111.  
  1112. ;
  1113. ; extern TQ3Status Q3Marker_GetPosition(TQ3GeometryObject marker, TQ3Point3D *location)
  1114. ;
  1115.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1116.         IMPORT_CFM_FUNCTION Q3Marker_GetPosition
  1117.     ENDIF
  1118.  
  1119. ;
  1120. ; extern TQ3Status Q3Marker_SetPosition(TQ3GeometryObject marker, const TQ3Point3D *location)
  1121. ;
  1122.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1123.         IMPORT_CFM_FUNCTION Q3Marker_SetPosition
  1124.     ENDIF
  1125.  
  1126. ;
  1127. ; extern TQ3Status Q3Marker_GetXOffset(TQ3GeometryObject marker, long *xOffset)
  1128. ;
  1129.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1130.         IMPORT_CFM_FUNCTION Q3Marker_GetXOffset
  1131.     ENDIF
  1132.  
  1133. ;
  1134. ; extern TQ3Status Q3Marker_SetXOffset(TQ3GeometryObject marker, long xOffset)
  1135. ;
  1136.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1137.         IMPORT_CFM_FUNCTION Q3Marker_SetXOffset
  1138.     ENDIF
  1139.  
  1140. ;
  1141. ; extern TQ3Status Q3Marker_GetYOffset(TQ3GeometryObject marker, long *yOffset)
  1142. ;
  1143.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1144.         IMPORT_CFM_FUNCTION Q3Marker_GetYOffset
  1145.     ENDIF
  1146.  
  1147. ;
  1148. ; extern TQ3Status Q3Marker_SetYOffset(TQ3GeometryObject marker, long yOffset)
  1149. ;
  1150.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1151.         IMPORT_CFM_FUNCTION Q3Marker_SetYOffset
  1152.     ENDIF
  1153.  
  1154. ;
  1155. ; extern TQ3Status Q3Marker_GetBitmap(TQ3GeometryObject marker, TQ3Bitmap *bitmap)
  1156. ;
  1157.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1158.         IMPORT_CFM_FUNCTION Q3Marker_GetBitmap
  1159.     ENDIF
  1160.  
  1161. ;
  1162. ; extern TQ3Status Q3Marker_SetBitmap(TQ3GeometryObject marker, const TQ3Bitmap *bitmap)
  1163. ;
  1164.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1165.         IMPORT_CFM_FUNCTION Q3Marker_SetBitmap
  1166.     ENDIF
  1167.  
  1168.  
  1169.  
  1170.  
  1171. ; ******************************************************************************
  1172. ; **                                                                             **
  1173. ; **                        Mesh Data Structure Definitions                         **
  1174. ; **                                                                             **
  1175. ; ****************************************************************************
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187. ; ******************************************************************************
  1188. ; **                                                                             **
  1189. ; **                            Mesh Routines                                      **
  1190. ; **                                                                             **
  1191. ; ****************************************************************************
  1192.  
  1193. ; *  Constructors
  1194.  
  1195. ;
  1196. ; extern TQ3GeometryObject Q3Mesh_New(void )
  1197. ;
  1198.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1199.         IMPORT_CFM_FUNCTION Q3Mesh_New
  1200.     ENDIF
  1201.  
  1202. ;
  1203. ; extern TQ3MeshVertex Q3Mesh_VertexNew(TQ3GeometryObject mesh, const TQ3Vertex3D *vertex)
  1204. ;
  1205.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1206.         IMPORT_CFM_FUNCTION Q3Mesh_VertexNew
  1207.     ENDIF
  1208.  
  1209. ;
  1210. ; extern TQ3MeshFace Q3Mesh_FaceNew(TQ3GeometryObject mesh, unsigned long numVertices, const TQ3MeshVertex *vertices, TQ3AttributeSet attributeSet)
  1211. ;
  1212.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1213.         IMPORT_CFM_FUNCTION Q3Mesh_FaceNew
  1214.     ENDIF
  1215.  
  1216. ; *  Destructors
  1217.  
  1218. ;
  1219. ; extern TQ3Status Q3Mesh_VertexDelete(TQ3GeometryObject mesh, TQ3MeshVertex vertex)
  1220. ;
  1221.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1222.         IMPORT_CFM_FUNCTION Q3Mesh_VertexDelete
  1223.     ENDIF
  1224.  
  1225. ;
  1226. ; extern TQ3Status Q3Mesh_FaceDelete(TQ3GeometryObject mesh, TQ3MeshFace face)
  1227. ;
  1228.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1229.         IMPORT_CFM_FUNCTION Q3Mesh_FaceDelete
  1230.     ENDIF
  1231.  
  1232. ; * Methods
  1233.  
  1234. ;
  1235. ; extern TQ3Status Q3Mesh_DelayUpdates(TQ3GeometryObject mesh)
  1236. ;
  1237.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1238.         IMPORT_CFM_FUNCTION Q3Mesh_DelayUpdates
  1239.     ENDIF
  1240.  
  1241. ;
  1242. ; extern TQ3Status Q3Mesh_ResumeUpdates(TQ3GeometryObject mesh)
  1243. ;
  1244.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1245.         IMPORT_CFM_FUNCTION Q3Mesh_ResumeUpdates
  1246.     ENDIF
  1247.  
  1248. ;
  1249. ; extern TQ3MeshContour Q3Mesh_FaceToContour(TQ3GeometryObject mesh, TQ3MeshFace containerFace, TQ3MeshFace face)
  1250. ;
  1251.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1252.         IMPORT_CFM_FUNCTION Q3Mesh_FaceToContour
  1253.     ENDIF
  1254.  
  1255. ;
  1256. ; extern TQ3MeshFace Q3Mesh_ContourToFace(TQ3GeometryObject mesh, TQ3MeshContour contour)
  1257. ;
  1258.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1259.         IMPORT_CFM_FUNCTION Q3Mesh_ContourToFace
  1260.     ENDIF
  1261.  
  1262. ; * Mesh
  1263.  
  1264. ;
  1265. ; extern TQ3Status Q3Mesh_GetNumComponents(TQ3GeometryObject mesh, unsigned long *numComponents)
  1266. ;
  1267.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1268.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumComponents
  1269.     ENDIF
  1270.  
  1271. ;
  1272. ; extern TQ3Status Q3Mesh_GetNumEdges(TQ3GeometryObject mesh, unsigned long *numEdges)
  1273. ;
  1274.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1275.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumEdges
  1276.     ENDIF
  1277.  
  1278. ;
  1279. ; extern TQ3Status Q3Mesh_GetNumVertices(TQ3GeometryObject mesh, unsigned long *numVertices)
  1280. ;
  1281.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1282.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumVertices
  1283.     ENDIF
  1284.  
  1285. ;
  1286. ; extern TQ3Status Q3Mesh_GetNumFaces(TQ3GeometryObject mesh, unsigned long *numFaces)
  1287. ;
  1288.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1289.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumFaces
  1290.     ENDIF
  1291.  
  1292. ;
  1293. ; extern TQ3Status Q3Mesh_GetNumCorners(TQ3GeometryObject mesh, unsigned long *numCorners)
  1294. ;
  1295.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1296.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumCorners
  1297.     ENDIF
  1298.  
  1299. ;
  1300. ; extern TQ3Status Q3Mesh_GetOrientable(TQ3GeometryObject mesh, TQ3Boolean *orientable)
  1301. ;
  1302.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1303.         IMPORT_CFM_FUNCTION Q3Mesh_GetOrientable
  1304.     ENDIF
  1305.  
  1306. ; * Component
  1307.  
  1308. ;
  1309. ; extern TQ3Status Q3Mesh_GetComponentNumVertices(TQ3GeometryObject mesh, TQ3MeshComponent component, unsigned long *numVertices)
  1310. ;
  1311.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1312.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentNumVertices
  1313.     ENDIF
  1314.  
  1315. ;
  1316. ; extern TQ3Status Q3Mesh_GetComponentNumEdges(TQ3GeometryObject mesh, TQ3MeshComponent component, unsigned long *numEdges)
  1317. ;
  1318.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1319.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentNumEdges
  1320.     ENDIF
  1321.  
  1322. ;
  1323. ; extern TQ3Status Q3Mesh_GetComponentBoundingBox(TQ3GeometryObject mesh, TQ3MeshComponent component, TQ3BoundingBox *boundingBox)
  1324. ;
  1325.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1326.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentBoundingBox
  1327.     ENDIF
  1328.  
  1329. ;
  1330. ; extern TQ3Status Q3Mesh_GetComponentOrientable(TQ3GeometryObject mesh, TQ3MeshComponent component, TQ3Boolean *orientable)
  1331. ;
  1332.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1333.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentOrientable
  1334.     ENDIF
  1335.  
  1336. ; * Vertex
  1337.  
  1338. ;
  1339. ; extern TQ3Status Q3Mesh_GetVertexCoordinates(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3Point3D *coordinates)
  1340. ;
  1341.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1342.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexCoordinates
  1343.     ENDIF
  1344.  
  1345. ;
  1346. ; extern TQ3Status Q3Mesh_GetVertexIndex(TQ3GeometryObject mesh, TQ3MeshVertex vertex, unsigned long *index)
  1347. ;
  1348.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1349.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexIndex
  1350.     ENDIF
  1351.  
  1352. ;
  1353. ; extern TQ3Status Q3Mesh_GetVertexOnBoundary(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3Boolean *onBoundary)
  1354. ;
  1355.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1356.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexOnBoundary
  1357.     ENDIF
  1358.  
  1359. ;
  1360. ; extern TQ3Status Q3Mesh_GetVertexComponent(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshComponent *component)
  1361. ;
  1362.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1363.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexComponent
  1364.     ENDIF
  1365.  
  1366. ;
  1367. ; extern TQ3Status Q3Mesh_GetVertexAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3AttributeSet *attributeSet)
  1368. ;
  1369.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1370.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexAttributeSet
  1371.     ENDIF
  1372.  
  1373.  
  1374. ;
  1375. ; extern TQ3Status Q3Mesh_SetVertexCoordinates(TQ3GeometryObject mesh, TQ3MeshVertex vertex, const TQ3Point3D *coordinates)
  1376. ;
  1377.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1378.         IMPORT_CFM_FUNCTION Q3Mesh_SetVertexCoordinates
  1379.     ENDIF
  1380.  
  1381. ;
  1382. ; extern TQ3Status Q3Mesh_SetVertexAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3AttributeSet attributeSet)
  1383. ;
  1384.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1385.         IMPORT_CFM_FUNCTION Q3Mesh_SetVertexAttributeSet
  1386.     ENDIF
  1387.  
  1388.  
  1389. ; * Face
  1390.  
  1391. ;
  1392. ; extern TQ3Status Q3Mesh_GetFaceNumVertices(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *numVertices)
  1393. ;
  1394.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1395.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceNumVertices
  1396.     ENDIF
  1397.  
  1398. ;
  1399. ; extern TQ3Status Q3Mesh_GetFacePlaneEquation(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3PlaneEquation *planeEquation)
  1400. ;
  1401.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1402.         IMPORT_CFM_FUNCTION Q3Mesh_GetFacePlaneEquation
  1403.     ENDIF
  1404.  
  1405. ;
  1406. ; extern TQ3Status Q3Mesh_GetFaceNumContours(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *numContours)
  1407. ;
  1408.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1409.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceNumContours
  1410.     ENDIF
  1411.  
  1412. ;
  1413. ; extern TQ3Status Q3Mesh_GetFaceIndex(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *index)
  1414. ;
  1415.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1416.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceIndex
  1417.     ENDIF
  1418.  
  1419. ;
  1420. ; extern TQ3Status Q3Mesh_GetFaceComponent(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3MeshComponent *component)
  1421. ;
  1422.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1423.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceComponent
  1424.     ENDIF
  1425.  
  1426. ;
  1427. ; extern TQ3Status Q3Mesh_GetFaceAttributeSet(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3AttributeSet *attributeSet)
  1428. ;
  1429.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1430.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceAttributeSet
  1431.     ENDIF
  1432.  
  1433.  
  1434. ;
  1435. ; extern TQ3Status Q3Mesh_SetFaceAttributeSet(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3AttributeSet attributeSet)
  1436. ;
  1437.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1438.         IMPORT_CFM_FUNCTION Q3Mesh_SetFaceAttributeSet
  1439.     ENDIF
  1440.  
  1441. ; * Edge
  1442.  
  1443. ;
  1444. ; extern TQ3Status Q3Mesh_GetEdgeVertices(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshVertex *vertex1, TQ3MeshVertex *vertex2)
  1445. ;
  1446.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1447.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeVertices
  1448.     ENDIF
  1449.  
  1450. ;
  1451. ; extern TQ3Status Q3Mesh_GetEdgeFaces(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshFace *face1, TQ3MeshFace *face2)
  1452. ;
  1453.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1454.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeFaces
  1455.     ENDIF
  1456.  
  1457. ;
  1458. ; extern TQ3Status Q3Mesh_GetEdgeOnBoundary(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3Boolean *onBoundary)
  1459. ;
  1460.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1461.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeOnBoundary
  1462.     ENDIF
  1463.  
  1464. ;
  1465. ; extern TQ3Status Q3Mesh_GetEdgeComponent(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshComponent *component)
  1466. ;
  1467.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1468.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeComponent
  1469.     ENDIF
  1470.  
  1471. ;
  1472. ; extern TQ3Status Q3Mesh_GetEdgeAttributeSet(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3AttributeSet *attributeSet)
  1473. ;
  1474.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1475.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeAttributeSet
  1476.     ENDIF
  1477.  
  1478.  
  1479. ;
  1480. ; extern TQ3Status Q3Mesh_SetEdgeAttributeSet(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3AttributeSet attributeSet)
  1481. ;
  1482.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1483.         IMPORT_CFM_FUNCTION Q3Mesh_SetEdgeAttributeSet
  1484.     ENDIF
  1485.  
  1486. ; * Contour
  1487.  
  1488. ;
  1489. ; extern TQ3Status Q3Mesh_GetContourFace(TQ3GeometryObject mesh, TQ3MeshContour contour, TQ3MeshFace *face)
  1490. ;
  1491.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1492.         IMPORT_CFM_FUNCTION Q3Mesh_GetContourFace
  1493.     ENDIF
  1494.  
  1495. ;
  1496. ; extern TQ3Status Q3Mesh_GetContourNumVertices(TQ3GeometryObject mesh, TQ3MeshContour contour, unsigned long *numVertices)
  1497. ;
  1498.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1499.         IMPORT_CFM_FUNCTION Q3Mesh_GetContourNumVertices
  1500.     ENDIF
  1501.  
  1502. ; * Corner
  1503.  
  1504. ;
  1505. ; extern TQ3Status Q3Mesh_GetCornerAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshFace face, TQ3AttributeSet *attributeSet)
  1506. ;
  1507.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1508.         IMPORT_CFM_FUNCTION Q3Mesh_GetCornerAttributeSet
  1509.     ENDIF
  1510.  
  1511. ;
  1512. ; extern TQ3Status Q3Mesh_SetCornerAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshFace face, TQ3AttributeSet attributeSet)
  1513. ;
  1514.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1515.         IMPORT_CFM_FUNCTION Q3Mesh_SetCornerAttributeSet
  1516.     ENDIF
  1517.  
  1518.  
  1519. ; * Public Mesh Iterators
  1520.  
  1521. TQ3MeshIterator            RECORD 0
  1522. var1                     ds.l    1                ; offset: $0 (0)
  1523. var2                     ds.l    1                ; offset: $4 (4)
  1524. var3                     ds.l    1                ; offset: $8 (8)
  1525. field1                     ds.l    1                ; offset: $C (12)
  1526. field2                     ds.b    4                ; offset: $10 (16)
  1527. sizeof                     EQU *                    ; size:   $14 (20)
  1528.                         ENDR
  1529. ;
  1530. ; extern TQ3MeshComponent Q3Mesh_FirstMeshComponent(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1531. ;
  1532.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1533.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshComponent
  1534.     ENDIF
  1535.  
  1536. ;
  1537. ; extern TQ3MeshComponent Q3Mesh_NextMeshComponent(TQ3MeshIterator *iterator)
  1538. ;
  1539.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1540.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshComponent
  1541.     ENDIF
  1542.  
  1543. ;
  1544. ; extern TQ3MeshVertex Q3Mesh_FirstComponentVertex(TQ3MeshComponent component, TQ3MeshIterator *iterator)
  1545. ;
  1546.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1547.         IMPORT_CFM_FUNCTION Q3Mesh_FirstComponentVertex
  1548.     ENDIF
  1549.  
  1550. ;
  1551. ; extern TQ3MeshVertex Q3Mesh_NextComponentVertex(TQ3MeshIterator *iterator)
  1552. ;
  1553.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1554.         IMPORT_CFM_FUNCTION Q3Mesh_NextComponentVertex
  1555.     ENDIF
  1556.  
  1557. ;
  1558. ; extern TQ3MeshEdge Q3Mesh_FirstComponentEdge(TQ3MeshComponent component, TQ3MeshIterator *iterator)
  1559. ;
  1560.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1561.         IMPORT_CFM_FUNCTION Q3Mesh_FirstComponentEdge
  1562.     ENDIF
  1563.  
  1564. ;
  1565. ; extern TQ3MeshEdge Q3Mesh_NextComponentEdge(TQ3MeshIterator *iterator)
  1566. ;
  1567.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1568.         IMPORT_CFM_FUNCTION Q3Mesh_NextComponentEdge
  1569.     ENDIF
  1570.  
  1571. ;
  1572. ; extern TQ3MeshVertex Q3Mesh_FirstMeshVertex(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1573. ;
  1574.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1575.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshVertex
  1576.     ENDIF
  1577.  
  1578. ;
  1579. ; extern TQ3MeshVertex Q3Mesh_NextMeshVertex(TQ3MeshIterator *iterator)
  1580. ;
  1581.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1582.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshVertex
  1583.     ENDIF
  1584.  
  1585. ;
  1586. ; extern TQ3MeshFace Q3Mesh_FirstMeshFace(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1587. ;
  1588.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1589.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshFace
  1590.     ENDIF
  1591.  
  1592. ;
  1593. ; extern TQ3MeshFace Q3Mesh_NextMeshFace(TQ3MeshIterator *iterator)
  1594. ;
  1595.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1596.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshFace
  1597.     ENDIF
  1598.  
  1599. ;
  1600. ; extern TQ3MeshEdge Q3Mesh_FirstMeshEdge(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1601. ;
  1602.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1603.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshEdge
  1604.     ENDIF
  1605.  
  1606. ;
  1607. ; extern TQ3MeshEdge Q3Mesh_NextMeshEdge(TQ3MeshIterator *iterator)
  1608. ;
  1609.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1610.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshEdge
  1611.     ENDIF
  1612.  
  1613. ;
  1614. ; extern TQ3MeshEdge Q3Mesh_FirstVertexEdge(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1615. ;
  1616.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1617.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexEdge
  1618.     ENDIF
  1619.  
  1620. ;
  1621. ; extern TQ3MeshEdge Q3Mesh_NextVertexEdge(TQ3MeshIterator *iterator)
  1622. ;
  1623.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1624.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexEdge
  1625.     ENDIF
  1626.  
  1627. ;
  1628. ; extern TQ3MeshVertex Q3Mesh_FirstVertexVertex(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1629. ;
  1630.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1631.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexVertex
  1632.     ENDIF
  1633.  
  1634. ;
  1635. ; extern TQ3MeshVertex Q3Mesh_NextVertexVertex(TQ3MeshIterator *iterator)
  1636. ;
  1637.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1638.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexVertex
  1639.     ENDIF
  1640.  
  1641. ;
  1642. ; extern TQ3MeshFace Q3Mesh_FirstVertexFace(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1643. ;
  1644.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1645.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexFace
  1646.     ENDIF
  1647.  
  1648. ;
  1649. ; extern TQ3MeshFace Q3Mesh_NextVertexFace(TQ3MeshIterator *iterator)
  1650. ;
  1651.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1652.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexFace
  1653.     ENDIF
  1654.  
  1655. ;
  1656. ; extern TQ3MeshEdge Q3Mesh_FirstFaceEdge(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1657. ;
  1658.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1659.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceEdge
  1660.     ENDIF
  1661.  
  1662. ;
  1663. ; extern TQ3MeshEdge Q3Mesh_NextFaceEdge(TQ3MeshIterator *iterator)
  1664. ;
  1665.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1666.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceEdge
  1667.     ENDIF
  1668.  
  1669. ;
  1670. ; extern TQ3MeshVertex Q3Mesh_FirstFaceVertex(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1671. ;
  1672.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1673.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceVertex
  1674.     ENDIF
  1675.  
  1676. ;
  1677. ; extern TQ3MeshVertex Q3Mesh_NextFaceVertex(TQ3MeshIterator *iterator)
  1678. ;
  1679.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1680.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceVertex
  1681.     ENDIF
  1682.  
  1683. ;
  1684. ; extern TQ3MeshFace Q3Mesh_FirstFaceFace(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1685. ;
  1686.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1687.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceFace
  1688.     ENDIF
  1689.  
  1690. ;
  1691. ; extern TQ3MeshFace Q3Mesh_NextFaceFace(TQ3MeshIterator *iterator)
  1692. ;
  1693.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1694.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceFace
  1695.     ENDIF
  1696.  
  1697. ;
  1698. ; extern TQ3MeshContour Q3Mesh_FirstFaceContour(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1699. ;
  1700.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1701.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceContour
  1702.     ENDIF
  1703.  
  1704. ;
  1705. ; extern TQ3MeshContour Q3Mesh_NextFaceContour(TQ3MeshIterator *iterator)
  1706. ;
  1707.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1708.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceContour
  1709.     ENDIF
  1710.  
  1711. ;
  1712. ; extern TQ3MeshEdge Q3Mesh_FirstContourEdge(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1713. ;
  1714.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1715.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourEdge
  1716.     ENDIF
  1717.  
  1718. ;
  1719. ; extern TQ3MeshEdge Q3Mesh_NextContourEdge(TQ3MeshIterator *iterator)
  1720. ;
  1721.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1722.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourEdge
  1723.     ENDIF
  1724.  
  1725. ;
  1726. ; extern TQ3MeshVertex Q3Mesh_FirstContourVertex(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1727. ;
  1728.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1729.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourVertex
  1730.     ENDIF
  1731.  
  1732. ;
  1733. ; extern TQ3MeshVertex Q3Mesh_NextContourVertex(TQ3MeshIterator *iterator)
  1734. ;
  1735.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1736.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourVertex
  1737.     ENDIF
  1738.  
  1739. ;
  1740. ; extern TQ3MeshFace Q3Mesh_FirstContourFace(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1741. ;
  1742.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1743.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourFace
  1744.     ENDIF
  1745.  
  1746. ;
  1747. ; extern TQ3MeshFace Q3Mesh_NextContourFace(TQ3MeshIterator *iterator)
  1748. ;
  1749.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1750.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourFace
  1751.     ENDIF
  1752.  
  1753.  
  1754.  
  1755. ; ******************************************************************************
  1756. ; **                                                                             **
  1757. ; **                            Maximum order for NURB Curves                     **
  1758. ; **                                                                             **
  1759. ; ****************************************************************************
  1760.  
  1761.  
  1762. ; ******************************************************************************
  1763. ; **                                                                             **
  1764. ; **                        NURB Data Structure Definitions                         **
  1765. ; **                                                                             **
  1766. ; ****************************************************************************
  1767.  
  1768. TQ3NURBCurveData        RECORD 0
  1769. order                     ds.l    1                ; offset: $0 (0)
  1770. numPoints                 ds.l    1                ; offset: $4 (4)
  1771. controlPoints             ds.l    1                ; offset: $8 (8)
  1772. knots                     ds.l    1                ; offset: $C (12)
  1773. curveAttributeSet         ds.l    1                ; offset: $10 (16)
  1774. sizeof                     EQU *                    ; size:   $14 (20)
  1775.                         ENDR
  1776. ; ******************************************************************************
  1777. ; **                                                                             **
  1778. ; **                                NURB Curve Routines                             **
  1779. ; **                                                                             **
  1780. ; ****************************************************************************
  1781.  
  1782. ;
  1783. ; extern TQ3GeometryObject Q3NURBCurve_New(const TQ3NURBCurveData *curveData)
  1784. ;
  1785.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1786.         IMPORT_CFM_FUNCTION Q3NURBCurve_New
  1787.     ENDIF
  1788.  
  1789. ;
  1790. ; extern TQ3Status Q3NURBCurve_Submit(const TQ3NURBCurveData *curveData, TQ3ViewObject view)
  1791. ;
  1792.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1793.         IMPORT_CFM_FUNCTION Q3NURBCurve_Submit
  1794.     ENDIF
  1795.  
  1796. ;
  1797. ; extern TQ3Status Q3NURBCurve_SetData(TQ3GeometryObject curve, const TQ3NURBCurveData *nurbCurveData)
  1798. ;
  1799.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1800.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetData
  1801.     ENDIF
  1802.  
  1803. ;
  1804. ; extern TQ3Status Q3NURBCurve_GetData(TQ3GeometryObject curve, TQ3NURBCurveData *nurbCurveData)
  1805. ;
  1806.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1807.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetData
  1808.     ENDIF
  1809.  
  1810. ;
  1811. ; extern TQ3Status Q3NURBCurve_EmptyData(TQ3NURBCurveData *nurbCurveData)
  1812. ;
  1813.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1814.         IMPORT_CFM_FUNCTION Q3NURBCurve_EmptyData
  1815.     ENDIF
  1816.  
  1817. ;
  1818. ; extern TQ3Status Q3NURBCurve_SetControlPoint(TQ3GeometryObject curve, unsigned long pointIndex, const TQ3RationalPoint4D *point4D)
  1819. ;
  1820.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1821.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetControlPoint
  1822.     ENDIF
  1823.  
  1824. ;
  1825. ; extern TQ3Status Q3NURBCurve_GetControlPoint(TQ3GeometryObject curve, unsigned long pointIndex, TQ3RationalPoint4D *point4D)
  1826. ;
  1827.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1828.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetControlPoint
  1829.     ENDIF
  1830.  
  1831. ;
  1832. ; extern TQ3Status Q3NURBCurve_SetKnot(TQ3GeometryObject curve, unsigned long knotIndex, float knotValue)
  1833. ;
  1834.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1835.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetKnot
  1836.     ENDIF
  1837.  
  1838. ;
  1839. ; extern TQ3Status Q3NURBCurve_GetKnot(TQ3GeometryObject curve, unsigned long knotIndex, float *knotValue)
  1840. ;
  1841.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1842.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetKnot
  1843.     ENDIF
  1844.  
  1845.  
  1846. ; ******************************************************************************
  1847. ; **                                                                             **
  1848. ; **                            Maximum NURB Patch Order                         **
  1849. ; **                                                                             **
  1850. ; ****************************************************************************
  1851.  
  1852. ; ******************************************************************************
  1853. ; **                                                                             **
  1854. ; **                        NURB Patch Data Structure Definitions                 **
  1855. ; **                                                                             **
  1856. ; ****************************************************************************
  1857.  
  1858. TQ3NURBPatchTrimCurveData RECORD 0
  1859. order                     ds.l    1                ; offset: $0 (0)
  1860. numPoints                 ds.l    1                ; offset: $4 (4)
  1861. controlPoints             ds.l    1                ; offset: $8 (8)
  1862. knots                     ds.l    1                ; offset: $C (12)
  1863. sizeof                     EQU *                    ; size:   $10 (16)
  1864.                         ENDR
  1865. TQ3NURBPatchTrimLoopData RECORD 0
  1866. numTrimCurves             ds.l    1                ; offset: $0 (0)
  1867. trimCurves                 ds.l    1                ; offset: $4 (4)
  1868. sizeof                     EQU *                    ; size:   $8 (8)
  1869.                         ENDR
  1870. TQ3NURBPatchData        RECORD 0
  1871. uOrder                     ds.l    1                ; offset: $0 (0)
  1872. vOrder                     ds.l    1                ; offset: $4 (4)
  1873. numRows                     ds.l    1                ; offset: $8 (8)
  1874. numColumns                 ds.l    1                ; offset: $C (12)
  1875. controlPoints             ds.l    1                ; offset: $10 (16)
  1876. uKnots                     ds.l    1                ; offset: $14 (20)
  1877. vKnots                     ds.l    1                ; offset: $18 (24)
  1878. numTrimLoops             ds.l    1                ; offset: $1C (28)
  1879. trimLoops                 ds.l    1                ; offset: $20 (32)
  1880. patchAttributeSet         ds.l    1                ; offset: $24 (36)
  1881. sizeof                     EQU *                    ; size:   $28 (40)
  1882.                         ENDR
  1883. ; ******************************************************************************
  1884. ; **                                                                             **
  1885. ; **                                NURB Patch Routines                             **
  1886. ; **                                                                             **
  1887. ; ****************************************************************************
  1888.  
  1889. ;
  1890. ; extern TQ3GeometryObject Q3NURBPatch_New(const TQ3NURBPatchData *nurbPatchData)
  1891. ;
  1892.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1893.         IMPORT_CFM_FUNCTION Q3NURBPatch_New
  1894.     ENDIF
  1895.  
  1896. ;
  1897. ; extern TQ3Status Q3NURBPatch_Submit(const TQ3NURBPatchData *nurbPatchData, TQ3ViewObject view)
  1898. ;
  1899.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1900.         IMPORT_CFM_FUNCTION Q3NURBPatch_Submit
  1901.     ENDIF
  1902.  
  1903. ;
  1904. ; extern TQ3Status Q3NURBPatch_SetData(TQ3GeometryObject nurbPatch, const TQ3NURBPatchData *nurbPatchData)
  1905. ;
  1906.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1907.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetData
  1908.     ENDIF
  1909.  
  1910. ;
  1911. ; extern TQ3Status Q3NURBPatch_GetData(TQ3GeometryObject nurbPatch, TQ3NURBPatchData *nurbPatchData)
  1912. ;
  1913.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1914.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetData
  1915.     ENDIF
  1916.  
  1917. ;
  1918. ; extern TQ3Status Q3NURBPatch_SetControlPoint(TQ3GeometryObject nurbPatch, unsigned long rowIndex, unsigned long columnIndex, const TQ3RationalPoint4D *point4D)
  1919. ;
  1920.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1921.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetControlPoint
  1922.     ENDIF
  1923.  
  1924. ;
  1925. ; extern TQ3Status Q3NURBPatch_GetControlPoint(TQ3GeometryObject nurbPatch, unsigned long rowIndex, unsigned long columnIndex, TQ3RationalPoint4D *point4D)
  1926. ;
  1927.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1928.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetControlPoint
  1929.     ENDIF
  1930.  
  1931. ;
  1932. ; extern TQ3Status Q3NURBPatch_SetUKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float knotValue)
  1933. ;
  1934.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1935.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetUKnot
  1936.     ENDIF
  1937.  
  1938. ;
  1939. ; extern TQ3Status Q3NURBPatch_SetVKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float knotValue)
  1940. ;
  1941.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1942.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetVKnot
  1943.     ENDIF
  1944.  
  1945. ;
  1946. ; extern TQ3Status Q3NURBPatch_GetUKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float *knotValue)
  1947. ;
  1948.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1949.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetUKnot
  1950.     ENDIF
  1951.  
  1952. ;
  1953. ; extern TQ3Status Q3NURBPatch_GetVKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float *knotValue)
  1954. ;
  1955.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1956.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetVKnot
  1957.     ENDIF
  1958.  
  1959. ;
  1960. ; extern TQ3Status Q3NURBPatch_EmptyData(TQ3NURBPatchData *nurbPatchData)
  1961. ;
  1962.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1963.         IMPORT_CFM_FUNCTION Q3NURBPatch_EmptyData
  1964.     ENDIF
  1965.  
  1966.  
  1967.  
  1968.  
  1969. ; ******************************************************************************
  1970. ; **                                                                             **
  1971. ; **                        Pixmap Marker Data Structure Definitions             **
  1972. ; **                                                                             **
  1973. ; ****************************************************************************
  1974.  
  1975. TQ3PixmapMarkerData        RECORD 0
  1976. position                 ds        TQ3Point3D        ; offset: $0 (0)
  1977. xOffset                     ds.l    1                ; offset: $C (12)
  1978. yOffset                     ds.l    1                ; offset: $10 (16)
  1979. pixmap                     ds        TQ3StoragePixmap ; offset: $14 (20)
  1980. pixmapMarkerAttributeSet  ds.l    1                ; offset: $34 (52)
  1981. sizeof                     EQU *                    ; size:   $38 (56)
  1982.                         ENDR
  1983. ; ******************************************************************************
  1984. ; **                                                                             **
  1985. ; **                                Pixmap Marker Routines                         **
  1986. ; **                                                                             **
  1987. ; ****************************************************************************
  1988.  
  1989. ;
  1990. ; extern TQ3GeometryObject Q3PixmapMarker_New(const TQ3PixmapMarkerData *pixmapMarkerData)
  1991. ;
  1992.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1993.         IMPORT_CFM_FUNCTION Q3PixmapMarker_New
  1994.     ENDIF
  1995.  
  1996. ;
  1997. ; extern TQ3Status Q3PixmapMarker_Submit(const TQ3PixmapMarkerData *pixmapMarkerData, TQ3ViewObject view)
  1998. ;
  1999.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2000.         IMPORT_CFM_FUNCTION Q3PixmapMarker_Submit
  2001.     ENDIF
  2002.  
  2003. ;
  2004. ; extern TQ3Status Q3PixmapMarker_SetData(TQ3GeometryObject geometry, const TQ3PixmapMarkerData *pixmapMarkerData)
  2005. ;
  2006.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2007.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetData
  2008.     ENDIF
  2009.  
  2010. ;
  2011. ; extern TQ3Status Q3PixmapMarker_GetData(TQ3GeometryObject geometry, TQ3PixmapMarkerData *pixmapMarkerData)
  2012. ;
  2013.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2014.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetData
  2015.     ENDIF
  2016.  
  2017. ;
  2018. ; extern TQ3Status Q3PixmapMarker_EmptyData(TQ3PixmapMarkerData *pixmapMarkerData)
  2019. ;
  2020.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2021.         IMPORT_CFM_FUNCTION Q3PixmapMarker_EmptyData
  2022.     ENDIF
  2023.  
  2024. ;
  2025. ; extern TQ3Status Q3PixmapMarker_GetPosition(TQ3GeometryObject pixmapMarker, TQ3Point3D *position)
  2026. ;
  2027.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2028.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetPosition
  2029.     ENDIF
  2030.  
  2031. ;
  2032. ; extern TQ3Status Q3PixmapMarker_SetPosition(TQ3GeometryObject pixmapMarker, const TQ3Point3D *position)
  2033. ;
  2034.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2035.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetPosition
  2036.     ENDIF
  2037.  
  2038. ;
  2039. ; extern TQ3Status Q3PixmapMarker_GetXOffset(TQ3GeometryObject pixmapMarker, long *xOffset)
  2040. ;
  2041.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2042.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetXOffset
  2043.     ENDIF
  2044.  
  2045. ;
  2046. ; extern TQ3Status Q3PixmapMarker_SetXOffset(TQ3GeometryObject pixmapMarker, long xOffset)
  2047. ;
  2048.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2049.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetXOffset
  2050.     ENDIF
  2051.  
  2052. ;
  2053. ; extern TQ3Status Q3PixmapMarker_GetYOffset(TQ3GeometryObject pixmapMarker, long *yOffset)
  2054. ;
  2055.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2056.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetYOffset
  2057.     ENDIF
  2058.  
  2059. ;
  2060. ; extern TQ3Status Q3PixmapMarker_SetYOffset(TQ3GeometryObject pixmapMarker, long yOffset)
  2061. ;
  2062.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2063.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetYOffset
  2064.     ENDIF
  2065.  
  2066. ;
  2067. ; extern TQ3Status Q3PixmapMarker_GetPixmap(TQ3GeometryObject pixmapMarker, TQ3StoragePixmap *pixmap)
  2068. ;
  2069.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2070.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetPixmap
  2071.     ENDIF
  2072.  
  2073. ;
  2074. ; extern TQ3Status Q3PixmapMarker_SetPixmap(TQ3GeometryObject pixmapMarker, const TQ3StoragePixmap *pixmap)
  2075. ;
  2076.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2077.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetPixmap
  2078.     ENDIF
  2079.  
  2080.  
  2081.  
  2082.  
  2083. ; ******************************************************************************
  2084. ; **                                                                             **
  2085. ; **                        Point Data Structure Definitions                     **
  2086. ; **                                                                             **
  2087. ; ****************************************************************************
  2088.  
  2089. TQ3PointData            RECORD 0
  2090. point                     ds        TQ3Point3D        ; offset: $0 (0)
  2091. pointAttributeSet         ds.l    1                ; offset: $C (12)
  2092. sizeof                     EQU *                    ; size:   $10 (16)
  2093.                         ENDR
  2094. ; ******************************************************************************
  2095. ; **                                                                             **
  2096. ; **                                Point Routines                                 **
  2097. ; **                                                                             **
  2098. ; ****************************************************************************
  2099.  
  2100. ;
  2101. ; extern TQ3GeometryObject Q3Point_New(const TQ3PointData *pointData)
  2102. ;
  2103.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2104.         IMPORT_CFM_FUNCTION Q3Point_New
  2105.     ENDIF
  2106.  
  2107. ;
  2108. ; extern TQ3Status Q3Point_Submit(const TQ3PointData *pointData, TQ3ViewObject view)
  2109. ;
  2110.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2111.         IMPORT_CFM_FUNCTION Q3Point_Submit
  2112.     ENDIF
  2113.  
  2114. ;
  2115. ; extern TQ3Status Q3Point_GetData(TQ3GeometryObject point, TQ3PointData *pointData)
  2116. ;
  2117.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2118.         IMPORT_CFM_FUNCTION Q3Point_GetData
  2119.     ENDIF
  2120.  
  2121. ;
  2122. ; extern TQ3Status Q3Point_SetData(TQ3GeometryObject point, const TQ3PointData *pointData)
  2123. ;
  2124.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2125.         IMPORT_CFM_FUNCTION Q3Point_SetData
  2126.     ENDIF
  2127.  
  2128. ;
  2129. ; extern TQ3Status Q3Point_EmptyData(TQ3PointData *pointData)
  2130. ;
  2131.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2132.         IMPORT_CFM_FUNCTION Q3Point_EmptyData
  2133.     ENDIF
  2134.  
  2135. ;
  2136. ; extern TQ3Status Q3Point_SetPosition(TQ3GeometryObject point, const TQ3Point3D *position)
  2137. ;
  2138.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2139.         IMPORT_CFM_FUNCTION Q3Point_SetPosition
  2140.     ENDIF
  2141.  
  2142. ;
  2143. ; extern TQ3Status Q3Point_GetPosition(TQ3GeometryObject point, TQ3Point3D *position)
  2144. ;
  2145.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2146.         IMPORT_CFM_FUNCTION Q3Point_GetPosition
  2147.     ENDIF
  2148.  
  2149.  
  2150.  
  2151.  
  2152. ; ******************************************************************************
  2153. ; **                                                                             **
  2154. ; **                        Polygon Data Structure Definitions                     **
  2155. ; **                                                                             **
  2156. ; ****************************************************************************
  2157.  
  2158. TQ3PolygonData            RECORD 0
  2159. numVertices                 ds.l    1                ; offset: $0 (0)
  2160. vertices                 ds.l    1                ; offset: $4 (4)
  2161. polygonAttributeSet         ds.l    1                ; offset: $8 (8)
  2162. sizeof                     EQU *                    ; size:   $C (12)
  2163.                         ENDR
  2164. ; ******************************************************************************
  2165. ; **                                                                             **
  2166. ; **                            Polygon Routines                                 **
  2167. ; **                                                                             **
  2168. ; ****************************************************************************
  2169.  
  2170. ;
  2171. ; extern TQ3GeometryObject Q3Polygon_New(const TQ3PolygonData *polygonData)
  2172. ;
  2173.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2174.         IMPORT_CFM_FUNCTION Q3Polygon_New
  2175.     ENDIF
  2176.  
  2177. ;
  2178. ; extern TQ3Status Q3Polygon_Submit(const TQ3PolygonData *polygonData, TQ3ViewObject view)
  2179. ;
  2180.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2181.         IMPORT_CFM_FUNCTION Q3Polygon_Submit
  2182.     ENDIF
  2183.  
  2184. ;
  2185. ; extern TQ3Status Q3Polygon_SetData(TQ3GeometryObject polygon, const TQ3PolygonData *polygonData)
  2186. ;
  2187.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2188.         IMPORT_CFM_FUNCTION Q3Polygon_SetData
  2189.     ENDIF
  2190.  
  2191. ;
  2192. ; extern TQ3Status Q3Polygon_GetData(TQ3GeometryObject polygon, TQ3PolygonData *polygonData)
  2193. ;
  2194.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2195.         IMPORT_CFM_FUNCTION Q3Polygon_GetData
  2196.     ENDIF
  2197.  
  2198. ;
  2199. ; extern TQ3Status Q3Polygon_EmptyData(TQ3PolygonData *polygonData)
  2200. ;
  2201.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2202.         IMPORT_CFM_FUNCTION Q3Polygon_EmptyData
  2203.     ENDIF
  2204.  
  2205. ;
  2206. ; extern TQ3Status Q3Polygon_GetVertexPosition(TQ3GeometryObject polygon, unsigned long index, TQ3Point3D *point)
  2207. ;
  2208.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2209.         IMPORT_CFM_FUNCTION Q3Polygon_GetVertexPosition
  2210.     ENDIF
  2211.  
  2212. ;
  2213. ; extern TQ3Status Q3Polygon_SetVertexPosition(TQ3GeometryObject polygon, unsigned long index, const TQ3Point3D *point)
  2214. ;
  2215.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2216.         IMPORT_CFM_FUNCTION Q3Polygon_SetVertexPosition
  2217.     ENDIF
  2218.  
  2219. ;
  2220. ; extern TQ3Status Q3Polygon_GetVertexAttributeSet(TQ3GeometryObject polygon, unsigned long index, TQ3AttributeSet *attributeSet)
  2221. ;
  2222.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2223.         IMPORT_CFM_FUNCTION Q3Polygon_GetVertexAttributeSet
  2224.     ENDIF
  2225.  
  2226. ;
  2227. ; extern TQ3Status Q3Polygon_SetVertexAttributeSet(TQ3GeometryObject polygon, unsigned long index, TQ3AttributeSet attributeSet)
  2228. ;
  2229.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2230.         IMPORT_CFM_FUNCTION Q3Polygon_SetVertexAttributeSet
  2231.     ENDIF
  2232.  
  2233.  
  2234.  
  2235.  
  2236. ; ******************************************************************************
  2237. ; **                                                                             **
  2238. ; **                        Polyhedron Data Structure Definitions                 **
  2239. ; **                                                                             **
  2240. ; ****************************************************************************
  2241.  
  2242.  
  2243. ; typedef long                            TQ3PolyhedronEdgeMasks
  2244. kQ3PolyhedronEdgeNone            EQU        0
  2245. kQ3PolyhedronEdge01                EQU        $01
  2246. kQ3PolyhedronEdge12                EQU        $02
  2247. kQ3PolyhedronEdge20                EQU        $04
  2248. kQ3PolyhedronEdgeAll            EQU        $07
  2249. ; typedef unsigned long                 TQ3PolyhedronEdge
  2250.  
  2251. TQ3PolyhedronEdgeData    RECORD 0
  2252. vertexIndices             ds.l    2                ; offset: $0 (0)
  2253. triangleIndices             ds.l    2                ; offset: $8 (8)
  2254. edgeAttributeSet         ds.l    1                ; offset: $10 (16)
  2255. sizeof                     EQU *                    ; size:   $14 (20)
  2256.                         ENDR
  2257. TQ3PolyhedronTriangleData RECORD 0
  2258. vertexIndices             ds.l    3                ; offset: $0 (0)
  2259. edgeFlag                 ds.l    1                ; offset: $C (12)
  2260. triangleAttributeSet     ds.l    1                ; offset: $10 (16)
  2261. sizeof                     EQU *                    ; size:   $14 (20)
  2262.                         ENDR
  2263. TQ3PolyhedronData        RECORD 0
  2264. numVertices                 ds.l    1                ; offset: $0 (0)
  2265. vertices                 ds.l    1                ; offset: $4 (4)
  2266. numEdges                 ds.l    1                ; offset: $8 (8)
  2267. edges                     ds.l    1                ; offset: $C (12)
  2268. numTriangles             ds.l    1                ; offset: $10 (16)
  2269. triangles                 ds.l    1                ; offset: $14 (20)
  2270. polyhedronAttributeSet     ds.l    1                ; offset: $18 (24)
  2271. sizeof                     EQU *                    ; size:   $1C (28)
  2272.                         ENDR
  2273. ; ******************************************************************************
  2274. ; **                                                                             **
  2275. ; **                                Polyhedron Routines                             **
  2276. ; **                                                                             **
  2277. ; ****************************************************************************
  2278.  
  2279. ;
  2280. ; extern TQ3GeometryObject Q3Polyhedron_New(const TQ3PolyhedronData *polyhedronData)
  2281. ;
  2282.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2283.         IMPORT_CFM_FUNCTION Q3Polyhedron_New
  2284.     ENDIF
  2285.  
  2286. ;
  2287. ; extern TQ3Status Q3Polyhedron_Submit(const TQ3PolyhedronData *polyhedronData, TQ3ViewObject view)
  2288. ;
  2289.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2290.         IMPORT_CFM_FUNCTION Q3Polyhedron_Submit
  2291.     ENDIF
  2292.  
  2293. ;
  2294. ; extern TQ3Status Q3Polyhedron_SetData(TQ3GeometryObject polyhedron, const TQ3PolyhedronData *polyhedronData)
  2295. ;
  2296.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2297.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetData
  2298.     ENDIF
  2299.  
  2300. ;
  2301. ; extern TQ3Status Q3Polyhedron_GetData(TQ3GeometryObject polyhedron, TQ3PolyhedronData *polyhedronData)
  2302. ;
  2303.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2304.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetData
  2305.     ENDIF
  2306.  
  2307. ;
  2308. ; extern TQ3Status Q3Polyhedron_EmptyData(TQ3PolyhedronData *polyhedronData)
  2309. ;
  2310.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2311.         IMPORT_CFM_FUNCTION Q3Polyhedron_EmptyData
  2312.     ENDIF
  2313.  
  2314. ;
  2315. ; extern TQ3Status Q3Polyhedron_SetVertexPosition(TQ3GeometryObject polyhedron, unsigned long index, const TQ3Point3D *point)
  2316. ;
  2317.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2318.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetVertexPosition
  2319.     ENDIF
  2320.  
  2321. ;
  2322. ; extern TQ3Status Q3Polyhedron_GetVertexPosition(TQ3GeometryObject polyhedron, unsigned long index, TQ3Point3D *point)
  2323. ;
  2324.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2325.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetVertexPosition
  2326.     ENDIF
  2327.  
  2328. ;
  2329. ; extern TQ3Status Q3Polyhedron_SetVertexAttributeSet(TQ3GeometryObject polyhedron, unsigned long index, TQ3AttributeSet attributeSet)
  2330. ;
  2331.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2332.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetVertexAttributeSet
  2333.     ENDIF
  2334.  
  2335. ;
  2336. ; extern TQ3Status Q3Polyhedron_GetVertexAttributeSet(TQ3GeometryObject polyhedron, unsigned long index, TQ3AttributeSet *attributeSet)
  2337. ;
  2338.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2339.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetVertexAttributeSet
  2340.     ENDIF
  2341.  
  2342. ;
  2343. ; extern TQ3Status Q3Polyhedron_GetTriangleData(TQ3GeometryObject polyhedron, unsigned long triangleIndex, TQ3PolyhedronTriangleData *triangleData)
  2344. ;
  2345.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2346.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetTriangleData
  2347.     ENDIF
  2348.  
  2349. ;
  2350. ; extern TQ3Status Q3Polyhedron_SetTriangleData(TQ3GeometryObject polyhedron, unsigned long triangleIndex, const TQ3PolyhedronTriangleData *triangleData)
  2351. ;
  2352.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2353.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetTriangleData
  2354.     ENDIF
  2355.  
  2356. ;
  2357. ; extern TQ3Status Q3Polyhedron_GetEdgeData(TQ3GeometryObject polyhedron, unsigned long edgeIndex, TQ3PolyhedronEdgeData *edgeData)
  2358. ;
  2359.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2360.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetEdgeData
  2361.     ENDIF
  2362.  
  2363. ;
  2364. ; extern TQ3Status Q3Polyhedron_SetEdgeData(TQ3GeometryObject polyhedron, unsigned long edgeIndex, const TQ3PolyhedronEdgeData *edgeData)
  2365. ;
  2366.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2367.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetEdgeData
  2368.     ENDIF
  2369.  
  2370.  
  2371.  
  2372.  
  2373. ; ******************************************************************************
  2374. ; **                                                                             **
  2375. ; **                        PolyLine Data Structure Definitions                     **
  2376. ; **                                                                             **
  2377. ; ****************************************************************************
  2378.  
  2379. TQ3PolyLineData            RECORD 0
  2380. numVertices                 ds.l    1                ; offset: $0 (0)
  2381. vertices                 ds.l    1                ; offset: $4 (4)
  2382. segmentAttributeSet         ds.l    1                ; offset: $8 (8)
  2383. polyLineAttributeSet     ds.l    1                ; offset: $C (12)
  2384. sizeof                     EQU *                    ; size:   $10 (16)
  2385.                         ENDR
  2386. ; ******************************************************************************
  2387. ; **                                                                             **
  2388. ; **                            PolyLine Routines                                 **
  2389. ; **                                                                             **
  2390. ; ****************************************************************************
  2391.  
  2392. ;
  2393. ; extern TQ3GeometryObject Q3PolyLine_New(const TQ3PolyLineData *polylineData)
  2394. ;
  2395.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2396.         IMPORT_CFM_FUNCTION Q3PolyLine_New
  2397.     ENDIF
  2398.  
  2399. ;
  2400. ; extern TQ3Status Q3PolyLine_Submit(const TQ3PolyLineData *polyLineData, TQ3ViewObject view)
  2401. ;
  2402.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2403.         IMPORT_CFM_FUNCTION Q3PolyLine_Submit
  2404.     ENDIF
  2405.  
  2406. ;
  2407. ; extern TQ3Status Q3PolyLine_SetData(TQ3GeometryObject polyLine, const TQ3PolyLineData *polyLineData)
  2408. ;
  2409.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2410.         IMPORT_CFM_FUNCTION Q3PolyLine_SetData
  2411.     ENDIF
  2412.  
  2413. ;
  2414. ; extern TQ3Status Q3PolyLine_GetData(TQ3GeometryObject polyLine, TQ3PolyLineData *polyLineData)
  2415. ;
  2416.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2417.         IMPORT_CFM_FUNCTION Q3PolyLine_GetData
  2418.     ENDIF
  2419.  
  2420. ;
  2421. ; extern TQ3Status Q3PolyLine_EmptyData(TQ3PolyLineData *polyLineData)
  2422. ;
  2423.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2424.         IMPORT_CFM_FUNCTION Q3PolyLine_EmptyData
  2425.     ENDIF
  2426.  
  2427. ;
  2428. ; extern TQ3Status Q3PolyLine_GetVertexPosition(TQ3GeometryObject polyLine, unsigned long index, TQ3Point3D *position)
  2429. ;
  2430.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2431.         IMPORT_CFM_FUNCTION Q3PolyLine_GetVertexPosition
  2432.     ENDIF
  2433.  
  2434. ;
  2435. ; extern TQ3Status Q3PolyLine_SetVertexPosition(TQ3GeometryObject polyLine, unsigned long index, const TQ3Point3D *position)
  2436. ;
  2437.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2438.         IMPORT_CFM_FUNCTION Q3PolyLine_SetVertexPosition
  2439.     ENDIF
  2440.  
  2441. ;
  2442. ; extern TQ3Status Q3PolyLine_GetVertexAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet *attributeSet)
  2443. ;
  2444.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2445.         IMPORT_CFM_FUNCTION Q3PolyLine_GetVertexAttributeSet
  2446.     ENDIF
  2447.  
  2448. ;
  2449. ; extern TQ3Status Q3PolyLine_SetVertexAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet attributeSet)
  2450. ;
  2451.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2452.         IMPORT_CFM_FUNCTION Q3PolyLine_SetVertexAttributeSet
  2453.     ENDIF
  2454.  
  2455. ;
  2456. ; extern TQ3Status Q3PolyLine_GetSegmentAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet *attributeSet)
  2457. ;
  2458.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2459.         IMPORT_CFM_FUNCTION Q3PolyLine_GetSegmentAttributeSet
  2460.     ENDIF
  2461.  
  2462. ;
  2463. ; extern TQ3Status Q3PolyLine_SetSegmentAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet attributeSet)
  2464. ;
  2465.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2466.         IMPORT_CFM_FUNCTION Q3PolyLine_SetSegmentAttributeSet
  2467.     ENDIF
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473. ; ******************************************************************************
  2474. ; **                                                                             **
  2475. ; **                        Torus Data Structure Definitions                     **
  2476. ; **                                                                             **
  2477. ; ****************************************************************************
  2478.  
  2479. TQ3TorusData            RECORD 0
  2480. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  2481. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  2482. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  2483. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  2484. ratio                     ds        Float32            ; offset: $30 (48)
  2485. uMin                     ds        Float32            ; offset: $34 (52)
  2486. uMax                     ds        Float32            ; offset: $38 (56)
  2487. vMin                     ds        Float32            ; offset: $3C (60)
  2488. vMax                     ds        Float32            ; offset: $40 (64)
  2489. caps                     ds.l    1                ; offset: $44 (68)
  2490. interiorAttributeSet     ds.l    1                ; offset: $48 (72)
  2491. torusAttributeSet         ds.l    1                ; offset: $4C (76)
  2492. sizeof                     EQU *                    ; size:   $50 (80)
  2493.                         ENDR
  2494. ; ******************************************************************************
  2495. ; **                                                                             **
  2496. ; **                                Torus Routines                                 **
  2497. ; **                                                                             **
  2498. ; ****************************************************************************
  2499.  
  2500. ;
  2501. ; extern TQ3GeometryObject Q3Torus_New(const TQ3TorusData *torusData)
  2502. ;
  2503.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2504.         IMPORT_CFM_FUNCTION Q3Torus_New
  2505.     ENDIF
  2506.  
  2507. ;
  2508. ; extern TQ3Status Q3Torus_Submit(const TQ3TorusData *torusData, TQ3ViewObject view)
  2509. ;
  2510.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2511.         IMPORT_CFM_FUNCTION Q3Torus_Submit
  2512.     ENDIF
  2513.  
  2514. ;
  2515. ; extern TQ3Status Q3Torus_SetData(TQ3GeometryObject torus, const TQ3TorusData *torusData)
  2516. ;
  2517.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2518.         IMPORT_CFM_FUNCTION Q3Torus_SetData
  2519.     ENDIF
  2520.  
  2521. ;
  2522. ; extern TQ3Status Q3Torus_GetData(TQ3GeometryObject torus, TQ3TorusData *torusData)
  2523. ;
  2524.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2525.         IMPORT_CFM_FUNCTION Q3Torus_GetData
  2526.     ENDIF
  2527.  
  2528. ;
  2529. ; extern TQ3Status Q3Torus_SetOrigin(TQ3GeometryObject torus, const TQ3Point3D *origin)
  2530. ;
  2531.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2532.         IMPORT_CFM_FUNCTION Q3Torus_SetOrigin
  2533.     ENDIF
  2534.  
  2535. ;
  2536. ; extern TQ3Status Q3Torus_SetOrientation(TQ3GeometryObject torus, const TQ3Vector3D *orientation)
  2537. ;
  2538.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2539.         IMPORT_CFM_FUNCTION Q3Torus_SetOrientation
  2540.     ENDIF
  2541.  
  2542. ;
  2543. ; extern TQ3Status Q3Torus_SetMajorRadius(TQ3GeometryObject torus, const TQ3Vector3D *majorRadius)
  2544. ;
  2545.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2546.         IMPORT_CFM_FUNCTION Q3Torus_SetMajorRadius
  2547.     ENDIF
  2548.  
  2549. ;
  2550. ; extern TQ3Status Q3Torus_SetMinorRadius(TQ3GeometryObject torus, const TQ3Vector3D *minorRadius)
  2551. ;
  2552.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2553.         IMPORT_CFM_FUNCTION Q3Torus_SetMinorRadius
  2554.     ENDIF
  2555.  
  2556. ;
  2557. ; extern TQ3Status Q3Torus_SetRatio(TQ3GeometryObject torus, float ratio)
  2558. ;
  2559.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2560.         IMPORT_CFM_FUNCTION Q3Torus_SetRatio
  2561.     ENDIF
  2562.  
  2563. ;
  2564. ; extern TQ3Status Q3Torus_GetOrigin(TQ3GeometryObject torus, TQ3Point3D *origin)
  2565. ;
  2566.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2567.         IMPORT_CFM_FUNCTION Q3Torus_GetOrigin
  2568.     ENDIF
  2569.  
  2570. ;
  2571. ; extern TQ3Status Q3Torus_GetOrientation(TQ3GeometryObject torus, TQ3Vector3D *orientation)
  2572. ;
  2573.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2574.         IMPORT_CFM_FUNCTION Q3Torus_GetOrientation
  2575.     ENDIF
  2576.  
  2577. ;
  2578. ; extern TQ3Status Q3Torus_GetMajorRadius(TQ3GeometryObject torus, TQ3Vector3D *majorRadius)
  2579. ;
  2580.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2581.         IMPORT_CFM_FUNCTION Q3Torus_GetMajorRadius
  2582.     ENDIF
  2583.  
  2584. ;
  2585. ; extern TQ3Status Q3Torus_GetMinorRadius(TQ3GeometryObject torus, TQ3Vector3D *minorRadius)
  2586. ;
  2587.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2588.         IMPORT_CFM_FUNCTION Q3Torus_GetMinorRadius
  2589.     ENDIF
  2590.  
  2591. ;
  2592. ; extern TQ3Status Q3Torus_GetRatio(TQ3GeometryObject torus, float *ratio)
  2593. ;
  2594.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2595.         IMPORT_CFM_FUNCTION Q3Torus_GetRatio
  2596.     ENDIF
  2597.  
  2598. ;
  2599. ; extern TQ3Status Q3Torus_EmptyData(TQ3TorusData *torusData)
  2600. ;
  2601.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2602.         IMPORT_CFM_FUNCTION Q3Torus_EmptyData
  2603.     ENDIF
  2604.  
  2605.  
  2606.  
  2607.  
  2608. ; ******************************************************************************
  2609. ; **                                                                             **
  2610. ; **                        Triangle Data Structure Definitions                     **
  2611. ; **                                                                             **
  2612. ; ****************************************************************************
  2613.  
  2614. TQ3TriangleData            RECORD 0
  2615. vertices                 ds.b    3 * TQ3Vertex3D.sizeof ; offset: $0 (0)
  2616. triangleAttributeSet     ds.l    1                ; offset: $30 (48)
  2617. sizeof                     EQU *                    ; size:   $34 (52)
  2618.                         ENDR
  2619. ; ******************************************************************************
  2620. ; **                                                                             **
  2621. ; **                            Triangle Routines                                 **
  2622. ; **                                                                             **
  2623. ; ****************************************************************************
  2624.  
  2625. ;
  2626. ; extern TQ3GeometryObject Q3Triangle_New(const TQ3TriangleData *triangleData)
  2627. ;
  2628.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2629.         IMPORT_CFM_FUNCTION Q3Triangle_New
  2630.     ENDIF
  2631.  
  2632. ;
  2633. ; extern TQ3Status Q3Triangle_Submit(const TQ3TriangleData *triangleData, TQ3ViewObject view)
  2634. ;
  2635.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2636.         IMPORT_CFM_FUNCTION Q3Triangle_Submit
  2637.     ENDIF
  2638.  
  2639. ;
  2640. ; extern TQ3Status Q3Triangle_SetData(TQ3GeometryObject triangle, const TQ3TriangleData *triangleData)
  2641. ;
  2642.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2643.         IMPORT_CFM_FUNCTION Q3Triangle_SetData
  2644.     ENDIF
  2645.  
  2646. ;
  2647. ; extern TQ3Status Q3Triangle_GetData(TQ3GeometryObject triangle, TQ3TriangleData *triangleData)
  2648. ;
  2649.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2650.         IMPORT_CFM_FUNCTION Q3Triangle_GetData
  2651.     ENDIF
  2652.  
  2653. ;
  2654. ; extern TQ3Status Q3Triangle_EmptyData(TQ3TriangleData *triangleData)
  2655. ;
  2656.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2657.         IMPORT_CFM_FUNCTION Q3Triangle_EmptyData
  2658.     ENDIF
  2659.  
  2660. ;
  2661. ; extern TQ3Status Q3Triangle_GetVertexPosition(TQ3GeometryObject triangle, unsigned long index, TQ3Point3D *point)
  2662. ;
  2663.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2664.         IMPORT_CFM_FUNCTION Q3Triangle_GetVertexPosition
  2665.     ENDIF
  2666.  
  2667. ;
  2668. ; extern TQ3Status Q3Triangle_SetVertexPosition(TQ3GeometryObject triangle, unsigned long index, const TQ3Point3D *point)
  2669. ;
  2670.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2671.         IMPORT_CFM_FUNCTION Q3Triangle_SetVertexPosition
  2672.     ENDIF
  2673.  
  2674. ;
  2675. ; extern TQ3Status Q3Triangle_GetVertexAttributeSet(TQ3GeometryObject triangle, unsigned long index, TQ3AttributeSet *attributeSet)
  2676. ;
  2677.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2678.         IMPORT_CFM_FUNCTION Q3Triangle_GetVertexAttributeSet
  2679.     ENDIF
  2680.  
  2681. ;
  2682. ; extern TQ3Status Q3Triangle_SetVertexAttributeSet(TQ3GeometryObject triangle, unsigned long index, TQ3AttributeSet attributeSet)
  2683. ;
  2684.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2685.         IMPORT_CFM_FUNCTION Q3Triangle_SetVertexAttributeSet
  2686.     ENDIF
  2687.  
  2688.  
  2689.  
  2690.  
  2691. ; ******************************************************************************
  2692. ; **                                                                             **
  2693. ; **                        TriGrid Data Structure Definitions                     **
  2694. ; **                                                                             **
  2695. ; ****************************************************************************
  2696.  
  2697. TQ3TriGridData            RECORD 0
  2698. numRows                     ds.l    1                ; offset: $0 (0)
  2699. numColumns                 ds.l    1                ; offset: $4 (4)
  2700. vertices                 ds.l    1                ; offset: $8 (8)
  2701. facetAttributeSet         ds.l    1                ; offset: $C (12)
  2702. triGridAttributeSet         ds.l    1                ; offset: $10 (16)
  2703. sizeof                     EQU *                    ; size:   $14 (20)
  2704.                         ENDR
  2705. ; ******************************************************************************
  2706. ; **                                                                             **
  2707. ; **                                TriGrid Routines                             **
  2708. ; **                                                                             **
  2709. ; ****************************************************************************
  2710.  
  2711. ;
  2712. ; extern TQ3GeometryObject Q3TriGrid_New(const TQ3TriGridData *triGridData)
  2713. ;
  2714.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2715.         IMPORT_CFM_FUNCTION Q3TriGrid_New
  2716.     ENDIF
  2717.  
  2718. ;
  2719. ; extern TQ3Status Q3TriGrid_Submit(const TQ3TriGridData *triGridData, TQ3ViewObject view)
  2720. ;
  2721.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2722.         IMPORT_CFM_FUNCTION Q3TriGrid_Submit
  2723.     ENDIF
  2724.  
  2725. ;
  2726. ; extern TQ3Status Q3TriGrid_SetData(TQ3GeometryObject triGrid, const TQ3TriGridData *triGridData)
  2727. ;
  2728.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2729.         IMPORT_CFM_FUNCTION Q3TriGrid_SetData
  2730.     ENDIF
  2731.  
  2732. ;
  2733. ; extern TQ3Status Q3TriGrid_GetData(TQ3GeometryObject triGrid, TQ3TriGridData *triGridData)
  2734. ;
  2735.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2736.         IMPORT_CFM_FUNCTION Q3TriGrid_GetData
  2737.     ENDIF
  2738.  
  2739. ;
  2740. ; extern TQ3Status Q3TriGrid_EmptyData(TQ3TriGridData *triGridData)
  2741. ;
  2742.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2743.         IMPORT_CFM_FUNCTION Q3TriGrid_EmptyData
  2744.     ENDIF
  2745.  
  2746. ;
  2747. ; extern TQ3Status Q3TriGrid_GetVertexPosition(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3Point3D *position)
  2748. ;
  2749.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2750.         IMPORT_CFM_FUNCTION Q3TriGrid_GetVertexPosition
  2751.     ENDIF
  2752.  
  2753. ;
  2754. ; extern TQ3Status Q3TriGrid_SetVertexPosition(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, const TQ3Point3D *position)
  2755. ;
  2756.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2757.         IMPORT_CFM_FUNCTION Q3TriGrid_SetVertexPosition
  2758.     ENDIF
  2759.  
  2760. ;
  2761. ; extern TQ3Status Q3TriGrid_GetVertexAttributeSet(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3AttributeSet *attributeSet)
  2762. ;
  2763.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2764.         IMPORT_CFM_FUNCTION Q3TriGrid_GetVertexAttributeSet
  2765.     ENDIF
  2766.  
  2767. ;
  2768. ; extern TQ3Status Q3TriGrid_SetVertexAttributeSet(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3AttributeSet attributeSet)
  2769. ;
  2770.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2771.         IMPORT_CFM_FUNCTION Q3TriGrid_SetVertexAttributeSet
  2772.     ENDIF
  2773.  
  2774. ;
  2775. ; extern TQ3Status Q3TriGrid_GetFacetAttributeSet(TQ3GeometryObject triGrid, unsigned long faceIndex, TQ3AttributeSet *facetAttributeSet)
  2776. ;
  2777.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2778.         IMPORT_CFM_FUNCTION Q3TriGrid_GetFacetAttributeSet
  2779.     ENDIF
  2780.  
  2781. ;
  2782. ; extern TQ3Status Q3TriGrid_SetFacetAttributeSet(TQ3GeometryObject triGrid, unsigned long faceIndex, TQ3AttributeSet facetAttributeSet)
  2783. ;
  2784.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2785.         IMPORT_CFM_FUNCTION Q3TriGrid_SetFacetAttributeSet
  2786.     ENDIF
  2787.  
  2788.  
  2789.  
  2790.  
  2791. ; ******************************************************************************
  2792. ; **                                                                             **
  2793. ; **                        TriMesh Data Structure Definitions                     **
  2794. ; **                                                                             **
  2795. ; ****************************************************************************
  2796.  
  2797. TQ3TriMeshTriangleData    RECORD 0
  2798. pointIndices             ds.l    3                ; offset: $0 (0)
  2799. sizeof                     EQU *                    ; size:   $C (12)
  2800.                         ENDR
  2801. TQ3TriMeshEdgeData        RECORD 0
  2802. pointIndices             ds.l    2                ; offset: $0 (0)
  2803. triangleIndices             ds.l    2                ; offset: $8 (8)
  2804. sizeof                     EQU *                    ; size:   $10 (16)
  2805.                         ENDR
  2806. TQ3TriMeshAttributeData    RECORD 0
  2807. attributeType             ds.l    1                ; offset: $0 (0)        ;  The type of attribute          
  2808. data                     ds.l    1                ; offset: $4 (4)        ;  Pointer to the contiguous     
  2809. ;  attribute data.                 
  2810. attributeUseArray         ds.l    1                ; offset: $8 (8)        ;  This is only used with custom 
  2811. ;  attributes                      
  2812. sizeof                     EQU *                    ; size:   $C (12)
  2813.                         ENDR
  2814. TQ3TriMeshData            RECORD 0
  2815. triMeshAttributeSet         ds.l    1                ; offset: $0 (0)
  2816. numTriangles             ds.l    1                ; offset: $4 (4)
  2817. triangles                 ds.l    1                ; offset: $8 (8)
  2818. numTriangleAttributeTypes  ds.l    1                ; offset: $C (12)
  2819. triangleAttributeTypes     ds.l    1                ; offset: $10 (16)
  2820. numEdges                 ds.l    1                ; offset: $14 (20)
  2821. edges                     ds.l    1                ; offset: $18 (24)
  2822. numEdgeAttributeTypes     ds.l    1                ; offset: $1C (28)
  2823. edgeAttributeTypes         ds.l    1                ; offset: $20 (32)
  2824. numPoints                 ds.l    1                ; offset: $24 (36)
  2825. points                     ds.l    1                ; offset: $28 (40)
  2826. numVertexAttributeTypes     ds.l    1                ; offset: $2C (44)
  2827. vertexAttributeTypes     ds.l    1                ; offset: $30 (48)
  2828. bBox                     ds        TQ3BoundingBox ; offset: $34 (52)
  2829. sizeof                     EQU *                    ; size:   $50 (80)
  2830.                         ENDR
  2831. ; ******************************************************************************
  2832. ; **                                                                             **
  2833. ; **                            TriMesh Routines                                 **
  2834. ; **                                                                             **
  2835. ; ****************************************************************************
  2836.  
  2837. ;
  2838. ; extern TQ3GeometryObject Q3TriMesh_New(const TQ3TriMeshData *triMeshData)
  2839. ;
  2840.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2841.         IMPORT_CFM_FUNCTION Q3TriMesh_New
  2842.     ENDIF
  2843.  
  2844. ;
  2845. ; extern TQ3Status Q3TriMesh_Submit(const TQ3TriMeshData *triMeshData, TQ3ViewObject view)
  2846. ;
  2847.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2848.         IMPORT_CFM_FUNCTION Q3TriMesh_Submit
  2849.     ENDIF
  2850.  
  2851. ;
  2852. ; extern TQ3Status Q3TriMesh_SetData(TQ3GeometryObject triMesh, const TQ3TriMeshData *triMeshData)
  2853. ;
  2854.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2855.         IMPORT_CFM_FUNCTION Q3TriMesh_SetData
  2856.     ENDIF
  2857.  
  2858. ;
  2859. ; extern TQ3Status Q3TriMesh_GetData(TQ3GeometryObject triMesh, TQ3TriMeshData *triMeshData)
  2860. ;
  2861.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2862.         IMPORT_CFM_FUNCTION Q3TriMesh_GetData
  2863.     ENDIF
  2864.  
  2865. ;
  2866. ; extern TQ3Status Q3TriMesh_EmptyData(TQ3TriMeshData *triMeshData)
  2867. ;
  2868.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2869.         IMPORT_CFM_FUNCTION Q3TriMesh_EmptyData
  2870.     ENDIF
  2871.  
  2872.  
  2873.  
  2874.  
  2875.     ENDIF ; __QD3DGEOMETRY__ 
  2876.  
  2877.